MYSQL学习笔记20: 外键约束(删除/更新行为)
外键约束 删除/更新行为
set default在mysql的默认引擎innodb中不支持
CASCADE
alter table 表名 add constraint 外键名称 foreign key(外键字段) references 主表名(主表字段名) on update cascade on delete cascade;
建立外键约束
#如果父表和子表建立外键的字段有不同的会报错 alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept (id) on update cascade on delete cascade;
将父表id为1的记录id设置为66
子表id为1的记录id更新为66
SET NULL
父表中删除/修改对应记录时, 如果有对应外键, 则设置子表中的外键值为null(如果这个外键允许取null的话)
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept (id) on update set null on delete set null;
修改dept表id为5的记录id为12, 删除id为66的记录,结果:
子表中id=5以及id=66的外键变为null
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示