odd不能添加外键约束

bweufnob  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(380)

我有一个奇怪的。我无法使用以下命令创建表:
数据库中已存在表users,只添加usertimezones,但失败。

CREATE TABLE `Users` (
  `AccessFailedCount` int(11) NOT NULL,
  `EmailConfirmed` bit(1) NOT NULL,
  `Id` char(36) NOT NULL,
  `NormalizedUserName` varchar(256) DEFAULT NULL,
  `NormalizedEmail` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `UserNameIndex` (`NormalizedUserName`),
  KEY `EmailIndex` (`NormalizedEmail`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `UserTimeZones` (
    `Id` char(36) NOT NULL,
    `UserId` char(36) NOT NULL,
    `TimeZoneOffsetInSeconds` int NOT NULL,
    `LastUpdatedAt` datetime(6) NOT NULL,
    CONSTRAINT `PK_UserTimeZones` PRIMARY KEY (`Id`),
    CONSTRAINT `FK_UserTimeZones_Users_UserId` FOREIGN KEY (`UserId`) REFERENCES `Users` (`Id`) ON DELETE CASCADE
);

SHOW ENGINE INNODB STATUS;

以下是状态显示的内容:

jmp7cifd

jmp7cifd1#

https://dev.mysql.com/doc/refman/8.0/en/innodb-foreign-key-constraints.html
innodb表的外键定义受以下条件限制:
innodb允许外键引用任何索引列或列组。但是,在引用的表中,必须有一个索引,其中引用的列按相同顺序列为第一列。
但奇怪的是,在引用表上似乎需要索引:
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html#foreign-关键点示例
因此,请尝试在表中添加索引

CREATE TABLE `UserTimeZones` (
    `Id` char(36) NOT NULL,
    `UserId` char(36) NOT NULL,
    `TimeZoneOffsetInSeconds` int NOT NULL,
    `LastUpdatedAt` datetime(6) NOT NULL,
    CONSTRAINT `PK_UserTimeZones` PRIMARY KEY (`Id`),
    INDEX userid_ind (UserId),
    CONSTRAINT `FK_UserTimeZones_Users_UserId` FOREIGN KEY (`UserId`) REFERENCES `Users` (`Id`) ON DELETE CASCADE

);

注意:这是错误消息所说的。

col17t5w

col17t5w2#

----最新外键错误
2018-11-09 11:26:44 0x7f832c523700表/usertimezones外键约束错误:
外键( UserId )参考文献 Users ( Id )删除时(级联):
在引用表中找不到引用列显示为第一列的索引,或者表中的列类型与引用表中的列类型不匹配。
请注意,在使用>=innodb-4.1.12创建的表中,enum和set的内部存储类型已更改,并且新表中的这些列不能引用旧表中的这些列。
请参阅http://dev.mysql.com/doc/refman/5.7/en/innodb-foreign-key-constraints.html 正确的外键定义。
所以我有一个经典的“不能添加外键约束”。
我尝试过:
将users.id列作为第一列:不会更改任何内容
列类型相同,引擎也一样。。。
在数据库中应用没有数据的迁移->它可以工作
在没有数据->的数据库中运行脚本仍然不起作用。。。
有什么问题?
不确定这是否重要,但我使用实体框架核心。

相关问题