我有两个表,分别称为mEmpl和mOrder。
mEmpl有9个字段:
IDEemployee(int)、ShortName(varchar)、Name
mOrder有11个字段:
IDOrder(int)、NrOrder(int
当我试图在引用mEmpl的mOrder(DBegin, DEnd, and Mode)
添加外键时,它总是会引发一条错误消息:
ERROR 1005 (HY000): Can't create table 'spezet.#sql-4d4_1' (errno: 150)
然而,如果我只是像这样给DBegin添加一个外键:
ALTER TABLE mOrder ADD FOREIGN KEY (DBegin) REFERENCES mEmpl(DBegin);
它没有引起任何错误!DBegin已成功指向mEmpl.DBegin主键。
有人能向我描述一下这里出了什么问题吗?或者MySQL是否真的不能同时指向两个日期时间字段?提前感谢您的回复。
您可以通过以root用户身份登录MySQL并输入:-来查找问题原因的更多详细信息
SHOW ENGINE INNODB STATUS;
这可能会有所帮助。我怀疑问题的原因是,在创建外键时,您需要在引用表上创建一个索引,该索引包含引用列作为索引的第一列,按外键约束中指定的顺序。
请参阅此处了解更多信息。