我有一个使用INNODB和Foreign Keys设置所有表的内置数据库。现在我需要修改一个表并添加一个引用另一个表的新列。我的查询是:
ALTER TABLE test ADD newcol INT NOT NULL;
ALTER TABLE test ADD CONSTRAINT fk_test
FOREIGN KEY (newcol)
REFERENCES othertable(id);
我收到以下错误:
"#1452 - Cannot add or update a child row: a foreign key constraint fails."
所有其他表都包含数据,但我知道如果我删除test
表并使用外键创建它,它将起作用。如果我删除测试表,它将删除很多记录,我想避免复制数据并重新插入它。
谁能告诉我如何通过外键添加新列?