我想通过提供一个外键来更改子表,该外键引用父ID而不是像这样
CREATE TABLE PARENT (parentID int not null auto_increment primary key,...);
CREATE TABLE CHILD (childID int not null auto_increment primary key, parentID int not null,...);
现在修复已创建表的语句是
ALTER TABLE child CHANGE parentID parentID int not null foreign key references parent(childID) ON DELETE CASCADE;
这无效。任何帮助表示赞赏。感谢。
答案 0 :(得分:1)
请说:
ALTER TABLE `CHILD`
ADD FOREIGN KEY (parentId) REFERENCES `PARENT`(parentId) ON DELETE CASCADE;
没有必要(afaik)更改列类型,因为它已经是正确的。
答案 1 :(得分:0)
请查看有关ALTER的T-SQL语法的MSDN Library。你可能想要这样的东西:
ALTER TABLE Child ALTER COLUMN...
答案 2 :(得分:0)
您的最后一行对外键的列名引用错误,应该引用parentID而不是childID。你也有一些语法错误。
请改为尝试:
ALTER TABLE child CHANGE parentID parentID int not null,
add foreign key (parentID) references parent(parentID) ON DELETE CASCADE;