MySQL基础|外键约束

外键约束

  • 只有InnoDB引擎的数据库才支持外键
创建外键
  • 建表时指定外键 [CONSTRAINT 外键名称] FOREIGN KEY (字段名称) REFERENCES 主表(字段名称)

    • 子表的外键字段和主表的字段类型要相似,如果是数值类型要求一致,无符号也要一致,如果是字符型,要求类型一致,长度可以不同
    • 如果外键的字段没有创建索引,MySql会自动帮我们添加索引
    • 子表的外键关联必须是父表的主键;
    • 外键约束的参照操作
      1. CASCADE 从父表删除或者更新,子表也跟着删除或者更新,级联的操作;
      2. SET NULL 从父表删除或者更新记录,并设置子表外键列为null;
      3. NO ACTION | RESTRICT 拒绝对父表做更新或者删除操作;
  • 动态添加外键 ALTER TABLE tb_name ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段)

注意:动态添加外键之前,表中的数据必须是合法的,没有脏值,否则外键无法正常添加

  • 动态删除外键 ALTER TABLE tb_name DROP FOREIGN KEY fk_name

注意:对于有外键关联的表在进行删除或者更新的时候,需要注意表与表之间的关系,不可以随意进行更新删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值