【发布时间】:2015-02-07 11:38:19
【问题描述】:
我必须使用外键创建调查表,但它给出了错误。喜欢
1005 - 无法创建表“demo.survey”(错误号:150)
那我该怎么办..
CREATE TABLE Survey
(
sno INT NOT NULL AUTO_INCREMENT,
sname TEXT NOT NULL,
sfpname VARCHAR(20) NOT NULL,
sdate TIMESTAMP NOT NULL,
sfcrno INT NOT NULL,
sfpno INT NOT NULL,
FOREIGN KEY(sfpname) REFERENCES Product(pname),
FOREIGN KEY(sfcrno) REFERENCES SurveyCreater(crno),
FOREIGN KEY(sfpno) REFERENCES Product(pno),
PRIMARY KEY(sno)
);
CREATE TABLE SurveyCreater
(
crno INT NOT NULL AUTO_INCREMENT,
crname TEXT NOT NULL,
dob DATE NOT NULL,
gender TEXT NOT NULL,
address TEXT,
city TEXT,
state TEXT,
contact TEXT NOT NULL,
email VARCHAR(30) NOT NULL,
PRIMARY KEY(crno)
);
CREATE TABLE Product
(
pno INT NOT NULL AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL,
pdate TIMESTAMP NOT NULL,
pfcrno INT NOT NULL,
FOREIGN KEY(pfcrno) REFERENCES SurveyCreater(crno),
PRIMARY KEY(pno)
);
【问题讨论】:
-
FOREIGN KEY(sfpno) REFERENCES Product(pno),外键只能引用主键或唯一键,我在 pno 上添加了唯一键,如果设置外键检查 = o,则表的顺序无关紧要,所以你没有移动表格见sqlfiddle.com/#!2/ef3b4 -
我按照你的解决方法试了。这行得通。谢谢...
标签: mysql foreign-keys