这个alter命令有什么问题:
ALTER TABLE `lp`
ADD COLUMN `RuleId` INT(10) NOT NULL DEFAULT -111 AFTER `Weight` , ,
ADD CONSTRAINT `fk_1` FOREIGN KEY (`RuleId` ) REFERENCES `Rules` (`RuleId` ) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD INDEX `fk_1` (`RuleId` ASC) ;如果我不接电话
ADD CONSTRAINT `fk_1` FOREIGN KEY (`RuleId` ) REFERENCES `Rules` (`RuleId` ) ON DELETE NO ...它的工作,
我得到的错误是:
Error Code : 1005
Can't create table '..' (errno: 121)如何在同一个字段上添加外键和索引?
更新:
我尝试将两个查询分开,首先添加索引,然后添加外键,然后添加索引,但第二个查询不工作!
当我更改外键的名称(如:'fk_2')并尝试运行它时,我得到一个错误: error代码: 1452不能添加或更新子行:外键约束失败
发布于 2010-08-11 06:32:02
首先创建索引,然后创建外键约束。MySQL需要一个索引来创建外键,这就是为什么您必须首先创建索引。也可以使用单独的语句。
发布于 2011-02-24 21:03:14
我也有同样的问题。
我发现,如果数据库中已经存在另一个具有完全相同名称的外键,则不能添加外键。即使另一个外键在另一个表上。
错误1005 (HY000):无法创建表'./MyDB/#sql-e4a_c715.frm‘(errno: 121),如果您试图添加一个名称已经在其他地方使用的约束,您将得到此消息。
(取自这里)
所以把它重命名为随机的东西来检查我是否正确..。
发布于 2014-03-06 18:25:44
在使用"manage.py sqlall“命令组合N Django应用程序的模式DDL后,我得到了这个错误。
我发现MySQL的DDL要求语句按照这个顺序按类分组。特别是,所有的改变表..。加上..。外键.必须是最后一个,否则MySQL会引发该错误。
https://stackoverflow.com/questions/3455805
复制相似问题