0

我在mysql中使用StoredProcedure创建了一个表,当我尝试应用外键约束时我也应用了主键约束..iam得到错误'Cant create table dbname.tablename'..这是我的简单StoredProcedure

delimiter |
CREATE PROCEDURE SP_CREATE_TABLE_SAMP()
BEGIN
CREATE TABLE  anan_user  (
   user_id  bigint(15) NOT NULL AUTO_INCREMENT,
   name  varchar(70) DEFAULT NULL,
   last_name  varchar(70) DEFAULT NULL,
   gender  varchar(10) DEFAULT NULL,
   username  varchar(40) DEFAULT NULL,
   password  varchar(40) DEFAULT NULL,
   dateofbirth  date DEFAULT NULL,
   email  varchar(100) DEFAULT NULL,
   phone  varchar(25) DEFAULT NULL,
   mobile  varchar(25) DEFAULT NULL,
   address  varchar(250) DEFAULT NULL,
   pincode  varchar(15) DEFAULT NULL,
   state_id  bigint(15) DEFAULT NULL,
   district_id  bigint(15) DEFAULT NULL,
   constituency_id  bigint(15) DEFAULT NULL,
   profile_Img  varchar(100) DEFAULT NULL,
   is_pwd_changed  varchar(10) DEFAULT 'false',
   registered_time  timestamp NULL DEFAULT NULL,
   updated_date  timestamp NULL DEFAULT NULL,
  PRIMARY KEY ( user_id )

  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
END;

如何在存储过程中给出外键约束?

4

1 回答 1

2

对照MySQL 参考外键约束检查您的语法。发布您尝试过的内容以及您尝试设置外键约束的方式也会对您有所帮助。

一个示例约束定义是:

CREATE TABLE parent (id INT NOT NULL,
                 PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
                INDEX par_ind (parent_id),
                FOREIGN KEY (parent_id) REFERENCES parent(id)
                  ON DELETE CASCADE
) ENGINE=INNODB;

相关语法是FOREIGN KEY (parent_id) REFERENCES parent(id).

于 2012-06-25T14:01:08.173 回答