旧问题,但添加了答案,以便获得帮助
它分为两个步骤:
假设,a
table1具有 列名称为, 约束条件 名称为的 外键 ,并通过键被引用到表中( 如下图所示 )。
fk_table2_id
fk_name``table2``t2
table1 [ fk_table2_id ] --> table2 [t2]
第一步 ,删除旧的约束:(参考)
ALTER TABLE `table1` DROP FOREIGN KEY `fk_name`;
通知约束已删除,列未删除
第二步 ,添加新约束:
ALTER TABLE `table1` ADD ConSTRAINT `fk_name` FOREIGN KEY (`fk_table2_id`) REFERENCES `table2` (`t2`) ON DELETE CASCADE;
添加约束,列已经在那里
例:
我有一个
UserDetails表是指
Users表:
mysql> SHOW CREATE TABLE UserDetails;:: `User_id` int(11) DEFAULT NULL, PRIMARY KEY (`Detail_id`), KEY `FK_User_id` (`User_id`), ConSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`)::
第一步:
mysql> ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;Query OK, 1 row affected (0.07 sec)
第二步:
mysql> ALTER TABLE `UserDetails` ADD ConSTRAINT `FK_User_id` -> FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`) ON DELETE CASCADE;Query OK, 1 row affected (0.02 sec)
结果:
mysql> SHOW CREATE TABLE UserDetails;::`User_id` int(11) DEFAULT NULL, PRIMARY KEY (`Detail_id`), KEY `FK_User_id` (`User_id`), ConSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`) ON DELETE CASCADE:



