繁体   English   中英

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

[英]MySQL statement to alter a table fails to work

我想通过为子表提供外键来更改子表,像这样通过其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;

这行不通。 任何帮助表示赞赏。 谢谢。

说啊:

ALTER TABLE `CHILD`
  ADD FOREIGN KEY (parentId) REFERENCES `PARENT`(parentId) ON DELETE CASCADE;

无需更改(afaik)列类型,因为它已经正确了。

请查看有关ALTER的T-SQL语法的MSDN库 您可能想要类似的东西:

ALTER TABLE Child ALTER COLUMN...

您的最后一行的外键列名称引用错误,应引用parentID而不是childID。 您那里也有一些语法错误。

尝试以下方法:

ALTER TABLE child CHANGE parentID parentID int not null, 
add foreign key (parentID) references parent(parentID) ON DELETE CASCADE;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM