【mysql外键(foreign key)的添加删除】and【对外键是否删除的检验】
创建以下两个表为例:
--book表--外键表
create table book(
bid int primary key auto_increment,
bname varchar(100) unique,
price double,
ziti char(10) default '宋体',
yeshu bigint check(yeshu>0 and yeshu<1000),
pid int);
--publishers表--主键表---
create table publishers(
id int primary key,
name char(10));
--book表外键 连接 publishers表主键---
【建表前添加外键--foreign key(pid) reference publishers(id) 】
建表后添加外键:
alter table book add constraint book_pid_fkey foreign key(pid) references publishers(id)
建表后删除外键:
alter table book drop foreign key book_pid_fkey;
外键基本常识:
1、插入数据 ,必须先插入主键表
2、删除数据,必须先删除外键表
3、主键表没被使用的行,可以被删除
4、主键表有联系时,不能清空表【truncate table 表名】
对外键是否删除的检验:
---主键表--插入内容:insert into publishers values (10086,'冬瓜出版社')
---外键表---插入内容:insert into book values (default,'飘',23,default,100,10086)
(1)添加外键--book表外键 连接 publishers表主键---
alter table book add constraint book_pid_fkey foreign key(pid) references publishers(id)
(2)外键表插入数据-插入pid为10084,主键表id没有10084,所以会插入失败
insert into book values (default,'三体',23,default,100,10084)
(3)外键表插入数据-因为插入pid为10086,主键表id也有10086,所以可成功插入
insert into book values (default,'三体',23,default,100,10086)
(4)删除外键-alter table book drop foreign key book_pid_fkey;
(5)外键表插入-pid不是10086的数据,如果外键删除了,则可以插入成功
insert into book values (default,'飘',23,default,100,10084)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人