【问题标题】:How can I add a "ON DELETE CASCADE"如何添加“ON DELETE CASCADE”
【发布时间】:2016-09-28 14:39:03
【问题描述】:

我已经有了外键等等。我只需要添加 ON DELETE CASCADE 选项。我怎样才能做到这一点? Alter Table 有什么用? 我正在使用 mysql 和 phpmyadmin

【问题讨论】:

标签: mysql sql phpmyadmin


【解决方案1】:

我不知道您使用的是哪个版本的 phpMyAdmin,但是在 4.5.2 版本上,如果您想在不手动编写 SQL 查询的情况下这样做,它的工作原理如下:

  1. 选择您的餐桌
  2. 转到Structure 选项卡
  3. 转到Relation view“子标签”
  4. 定义约束
  5. 保存更改

请注意,MyISAM 存储引擎无法做到这一点(似乎是我安装的默认引擎),您必须选择InnoDB 之一:

  1. 选择您的餐桌
  2. 转到Operations 选项卡
  3. Storage Engine 更改为InnoDB
  4. 保存

对于较旧的 phpMyAdmin 版本,我知道它略有不同,因为 Relation view 可以通过表结构下方的链接访问。

【讨论】:

    【解决方案2】:

    很遗憾,您只能使用alter table 创建和删除约束,您无法更改现有的约束。也没有单独的 alter constraint 命令。因此,您所能做的就是删除外键并添加 on delete 级联子句重新创建它。

    【讨论】:

      【解决方案3】:

      最简单的方法是删除当前约束并使用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
      

      【讨论】:

        猜你喜欢
        • 2012-07-16
        • 2010-12-06
        • 2015-01-27
        • 2019-12-05
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        • 1970-01-01
        • 2015-01-05
        相关资源
        最近更新 更多