【发布时间】:2016-09-28 14:39:03
【问题描述】:
我已经有了外键等等。我只需要添加 ON DELETE CASCADE 选项。我怎样才能做到这一点? Alter Table 有什么用? 我正在使用 mysql 和 phpmyadmin
【问题讨论】:
标签: mysql sql phpmyadmin
我已经有了外键等等。我只需要添加 ON DELETE CASCADE 选项。我怎样才能做到这一点? Alter Table 有什么用? 我正在使用 mysql 和 phpmyadmin
【问题讨论】:
标签: mysql sql phpmyadmin
我不知道您使用的是哪个版本的 phpMyAdmin,但是在 4.5.2 版本上,如果您想在不手动编写 SQL 查询的情况下这样做,它的工作原理如下:
Structure 选项卡Relation view“子标签”请注意,MyISAM 存储引擎无法做到这一点(似乎是我安装的默认引擎),您必须选择InnoDB 之一:
Operations 选项卡Storage Engine 更改为InnoDB
对于较旧的 phpMyAdmin 版本,我知道它略有不同,因为 Relation view 可以通过表结构下方的链接访问。
【讨论】:
很遗憾,您只能使用alter table 创建和删除约束,您无法更改现有的约束。也没有单独的 alter constraint 命令。因此,您所能做的就是删除外键并添加 on delete 级联子句重新创建它。
【讨论】:
最简单的方法是删除当前约束并使用ON DELETE 添加新约束
删除:ALTER TABLE mytable DROP FOREIGN KEY 'fk_anothertable'
然后重新创建它:
ALTER TABLE mytable
ADD CONSTRAINT 'fk_anothertable'
FOREIGN KEY ('aColumn' )
REFERENCES 'anotherTable' ('aColumn' )
ON DELETE CASCADE
【讨论】: