【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)

 

 

 

 

 

 

 

 

 

posted @   瓦风  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示