国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

數據庫中restrict和casecade是什么意思?

2019-11-08 20:56:49
字體:
來源:轉載
供稿:網友

restrict和cascade都是在外碼定義時指定的關鍵字。

外碼所指定的字段取值受限制,可以取兩種值:1. 所參照主碼中出現過的值;2. 可以取空值。

外碼所指定的字段中數據的增刪改是受到外碼約束的限制的,在數據增刪改時會檢查是否滿足外碼約束條件,

當不滿足外碼的條件時,所做的處理與定義外碼時指定的restrict關鍵字或者cascade關鍵字有關。

下面以一個具體例子說明:設有兩張表:student和class,表定義語句為:create table class(cno int PRimary key, cname varchar(20))create table student(sno int primary key, sname varchar(10), cno int, foreign key(cno) references class(cno) on delete restrict)第一張表class中,cno是主碼,第二張表student中,sno是主碼,cno是外碼,外碼的取值必須在class的主碼cno中出現過,或者取空值。注意,在外碼定義時指定了restrict關鍵字,此時,如果從class表中刪除一條數據(即刪除一個班級),student表中恰好有該班級的學生,則會報錯,不允許刪除。如果在student表的外碼定義時指定的是cascade,即create table student(sno int primary key, sname varchar(10), cno int, foreign key(cno) references class(cno) on delete cascade)則表示級聯刪除,刪除class表中的一條數據時,會把student表中對應的數據一起刪除掉。此外,在外碼定義時還可以指定on delete set null,表示刪除class表中的一條數據時,如果student表中有對應的數據,則把這些對應的數據的cno設置為空值NULL。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石首市| 堆龙德庆县| 咸宁市| 股票| 保靖县| 张掖市| 洛川县| 绥宁县| 永州市| 收藏| 于都县| 兴文县| 隆林| 金昌市| 星座| 福安市| 义乌市| 上犹县| 台中县| 湟源县| 安宁市| 全椒县| 林周县| 沈丘县| 怀来县| 通许县| 白朗县| 襄垣县| 旌德县| 临澧县| 大港区| 朝阳县| 定襄县| 伊金霍洛旗| 玉溪市| 海阳市| 宜城市| 佛坪县| 婺源县| 淳化县| 吴堡县|