我知道,伙计们,
我有两张这样的table:
“\配置”表:
“\u usarios”表:
当我尝试添加外键时:
ALTER TABLE `_config` ADD CONSTRAINT `_config__entitycreateuser_fk`
FOREIGN KEY (`_EntityCreateUser`)
REFERENCES `_usuarios`(`UsuarioId`)
ON DELETE CASCADE ON UPDATE SET NULL
我收到这个错误:
sql错误(1005):无法创建表'databasename'。#sql-14a4_'(errno:121“写入或更新时的重复键)
我尝试将外键检查设置为0,但返回:
sql错误(1825)未能在表“\u config”上添加外键约束。外键约束“databasename/\u config\u entitycreateuser\u fk”中的选项不正确º 所有表都是空的
1条答案
按热度按时间ocebsuys1#
检查外键的名称对于数据库是唯一的
这是最常见的修复方法之一。
打开搜索版本。
针对你的评论,我再次编辑了我的答案。
仔细检查有问题的table,
_config
以及_usuarios
没有分区。innodb对FK
分区表的约束。你应该能够阅读手册中的细节。更有用的是,试着运行这个
SHOW ENGINE innodb STATUS
在尝试添加FK
再次约束。它将向您显示错误的详细信息。我猜你的问题是
...ON UPDATE SET NULL
. 既然你想SET NULL
上_usuarios.UsuarioId
显示为IDENTITY
在你的table上。成为一个IDENTITY
自动将列设置为NOT NULLABLE