[英]MySQL InnoDB Foreign Key Problems
我有下面的表,我试图在MySQL中运行它们,但我不断得到errno150。只是不确定为什么,但是MySQL似乎无法创建外键约束。 我已经看过为InnoDB设置FK的规则,一切似乎都还可以。 有人可以借给我另一套眼睛和专业知识吗?
-- Table publication_type (parent table)
CREATE TABLE publication_type (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
publication_type varchar(55) NOT NULL,
tstamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT publication_type_pk PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Table publication (child table)
CREATE TABLE publication (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
authors varchar(255) NOT NULL,
publication_title varchar(100) NOT NULL,
publication_type_id int(11) UNSIGNED NOT NULL,
user_id int(11) UNSIGNED NOT NULL,
CONSTRAINT publication_pk PRIMARY KEY (id),
CONSTRAINT publication_type_fk FOREIGN KEY (publication_type_id) REFERENCES publication_type(id) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
类型不匹配:
publication_type.id
的类型为int UNSIGNED
publication.publication_type_id
的类型为int
另请参阅文档: http : //dev.mysql.com/doc/refman/5.1/en/create-table-foreign-keys.html ,特别是:
外键和引用键中的对应列必须具有相似的数据类型。 整数类型的大小和符号必须相同 。 字符串类型的长度不必相同。 对于非二进制(字符)字符串列,字符集和排序规则必须相同。
强调我的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.