Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于更改表的MySQL语句无法工作_Mysql_Sql - Fatal编程技术网

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

用于更改表的MySQL语句无法工作,mysql,sql,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 par

我想通过提供一个外键来更改子表,该外键在其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的T-SQL语法。您可能需要以下内容:

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;
只要说:

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

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

您得到的错误是什么?“外键”附近的语法错误,我在MySQL Workbench中检查过。您可以发布完整的错误字符串吗?