Mysql无法为我的表添加外键约束

时间:2013-09-21 16:06:15

标签: mysql

嘿家伙得到错误代码1215,SQL状态HY000:无法为我的PERSON_GROUP表和IMAGES表添加外键约束..不知道为什么,我的引用有问题?我试过重写它但它只是不起作用......

现在更新了代码我刚刚收到FOREIGN KEY (ID) REFERENCES INSTRUMENT(ID)

的错误

2 个答案:

答案 0 :(得分:3)

您只能创建引用主键或唯一键的外键。由于ID是PERSON的主键,因此将外键更改为指向ID而不是电子邮件。您还可以将电子邮件设为一个唯一的列,这可能是一个好主意,以确保没有人重复使用相同的电子邮件地址,但是使用整数然后字符串来创建外键的存储空间更少。

答案 1 :(得分:0)

我有这个问题。问题是数据库引擎。直到我在它工作之前添加了ENGINE=MyISAM DEFAULT CHARSET=latin1。我想我的默认值是innoDB或其他。

CREATE TABLE LECTURE_NOTE (
  ID bigint(20) NOT NULL, 
  NOTE VARCHAR(1000) NOT NULL, 
  NOTE_DATE TIMESTAMP NULL DEFAULT NULL,
  LECTURE_ID bigint(20) NOT NULL,
  PUBLISHER_ID bigint(20) NOT NULL,
  PRIMARY KEY (ID),
  CONSTRAINT fk_lecture_id FOREIGN KEY (LECTURE_ID) REFERENCES 
  COURSE_LECTURE (ID),
  CONSTRAINT fk_publisher_id FOREIGN KEY (PUBLISHER_ID) REFERENCES 
  PUBLISHER (ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;