我无法将外键指向日期时间字段类型



我有两个表,分别称为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;

这可能会有所帮助。我怀疑问题的原因是,在创建外键时,您需要在引用表上创建一个索引,该索引包含引用列作为索引的第一列,按外键约束中指定的顺序。

请参阅此处了解更多信息。

最新更新