日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除

發布時間:2023/12/4 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、外鍵的創建

語法一:后續添加方法

alter table 表名 add constraint 約束名 foreign key(當前表中約束的字段) references 主表表名(要約束的字段名);

alter table student add constraint fk_class_student foreign key(cls_id) class(cls_id) on update cascade on delete no action;1

2

語法二:創建表的方法

CREATE TABLE student(

sid int PRIMARY KEY,

cls_id int not null,

sname varchar(10) not null,

constraint fk_class_student foreign key(cls_id) references class(cls_id) on update cascade on delete no action

)ENGINE=InnoDB DEFAULT CHARSET=utf8;1

2

3

4

5

6

一個額外點:

SHOW CREATE TABLE class1

可以查詢表的建表信息

CREATE TABLE `class` (

`cls_id` int NOT NULL,

`cls_name` varchar(15) NOT NULL,

PRIMARY KEY (`cls_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf81

2

3

4

5

下面的演示我們就使用剛剛創建的這個學生表和班級表

內容如下

二,關于四種約束方式

在父表上進行update/delete操作時,子表的操作類型

CASCADE ??? 子表會刪除包含與已刪除鍵值有參照關系的所有數據

SET NULL ??? 父表delete、update的時候,子表會將關聯記錄的外鍵字段所在列設為null

RESTRICT ??? 拒絕有關聯關系的字段的刪除要求(這是默認設置,也是最安全的設置)

NO ACTION ??? 和RESTRICT 類似

以我們剛剛設置的外鍵為例(on update cascade on delete no action)

當我們嘗試進行刪除操作時

delete from class WHERE cls_id=11

結果如下

可以看到由于外鍵約束中on delete no action的存在,不允許對主表進行刪除操作。但是子表可以

delete from student WHERE cls_id=11

當我們對父表的關聯鍵進行更新操作時,由于on update cascade的存在,可以正常更新

UPDATE class set cls_id=4 where cls_id=11

并且隨著主表的更新,子表中的外鍵字段也進行了更新

三,刪除外鍵的方法

alter table 子表名 drop foreign key 外鍵約束名

alter table student drop foreign key fk_class_student1

2

當我們將外鍵刪除之后,父表的操作就變得可以正常進行了

文章來源: blog.csdn.net,作者:Spike Bo,版權歸原作者所有,如需轉載,請聯系作者。

原文鏈接:blog.csdn.net/m0_51709303/article/details/112589209

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。