美文网首页
添加外键约束的时候遇到的问题

添加外键约束的时候遇到的问题

作者: 苍老师的眼泪 | 来源:发表于2020-11-30 00:12 被阅读0次

有一个orders表,另一个是order_items表,order_items表的order_id是orders表的id,现在想要在某个order记录被删除的时候,与之相关的order_item要被数据库自动删除。

方案,在order_items表中添加一个外键约束,设置on delete为cascade级联删除,根据mysql官方文档的描述,目前只有InnoDB这个数据库引擎支持外键约束。Foreign key constraints are supported for the InnoDB storage engine only. For other storage engines, the foreign key syntax is correctly parsed but not implemented.

容易忽略的点1:当order_items表中有order表不存在的id时,索引无法建立(已有数据不满足约束条件,无法在此基础上建立外键约束)

容易忽略的点2: 在插入数据时,应注意插入顺序,order_items不能引用order表中没有的id,所以ord要要先插入order表,再插入order_item表。

容易忽略的点3: order_items中的外键属性必须要有一个索引,比如index类型的索引

容易踩到的坑:
原本来说,在mysql workbench中点点鼠标即可完成以上操作,但是在进行添加外键时
,mysql workbench容易抽风,此时可用命令手动执行:

ALTER TABLE `wxmall`.`order_items` 
ADD CONSTRAINT `fk_order_id`
  FOREIGN KEY (`order_id`)
  REFERENCES `wxmall`.`orders` (`id`)
  ON DELETE CASCADE
  ON UPDATE NO ACTION;

相关文章

  • 添加外键约束的时候遇到的问题

    有一个orders表,另一个是order_items表,order_items表的order_id是orders表...

  • MySQL学习日记(16)约束的增删改

    增 添加约束 主键 添加约束 唯一 添加约束外键 这里出现了两个问题 添加外键时父表的字段必须是键,如果报错Inv...

  • 外键约束

    外键约束主要包含添加外键和删除外键。 1、外键约束-添加外键 create table 表名(字段名 数据类型,....

  • Mysql foreign key and trigger

    外键约束与触发器 建表 主表 users 副表 user_info 外键约束 副表 user_info 添加外键约...

  • MySQL的简单学习(二)-多表查询

    外键 设置外键 如果是创建表添加外键约束,我们需要在创建表的()最后添加如下语句 FOREIGN KEY (bra...

  • 数据表修改

    添加单列 添加多列 删除列 添加主键约束 添加唯一约束 添加外键约束 添加/删除默认约束 删除主键约束 删除唯一约...

  • 数据库进阶

    外键和E.R图 约束管理 添加约束 添加普通约束的方式有两种,一种是创建表的时候直接给字段添加相应的约束,另一种是...

  • MySQL提高(外键约束)

    外键约束 添加约束 外键和E.R图 例子 查询的高级操作 ![FQ@242ABW2]A%3L.png](https...

  • Mysql外键约束的添加

    创建外键可以通过navicat或者sqlyog等工具来完成,但是还是推荐使用语句完成。 创建语句:ALTER TA...

  • mysql 常用操作

    导出数据: 导入数据: 查看外键约束: 全部的表: 去除约束: 添加约束: 主键: 约束不能更改,只能先移除再创建...

网友评论

      本文标题:添加外键约束的时候遇到的问题

      本文链接:https://www.haomeiwen.com/subject/cxilwktx.html