用于更改表的MySQL语句无法正常工作

时间:2012-02-04 11:43:26

标签: mysql sql

我想通过提供一个外键来更改子表,该外键引用父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;

这无效。任何帮助表示赞赏。感谢。

3 个答案:

答案 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;