第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

數(shù)據(jù)庫(kù)中restrict和casecade是什么意思?

數(shù)據(jù)庫(kù)中restrict和casecade是什么意思?

慕村9548890 2018-12-15 19:15:02
數(shù)據(jù)庫(kù)中restrict和casecade是什么意思?
查看完整描述

1 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

restrict和cascade都是在外碼定義時(shí)指定的關(guān)鍵字。

外碼所指定的字段取值受限制,可以取兩種值:

  1. 所參照主碼中出現(xiàn)過(guò)的值;

  2. 可以取空值。

外碼所指定的字段中數(shù)據(jù)的增刪改是受到外碼約束的限制的,在數(shù)據(jù)增刪改時(shí)會(huì)檢查是否滿足外碼約束條件,當(dāng)不滿足外碼的條件時(shí),所做的處理與定義外碼時(shí)指定的restrict關(guān)鍵字或者cascade關(guān)鍵字有關(guān)。

下面以一個(gè)具體例子說(shuō)明:

設(shè)有兩張表:student和class,表定義語(yǔ)句為:

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中出現(xiàn)過(guò),或者取空值。注意,在外碼定義時(shí)指定了restrict關(guān)鍵字,此時(shí),如果從class表中刪除一條數(shù)據(jù)(即刪除一個(gè)班級(jí)),student表中恰好有該班級(jí)的學(xué)生,則會(huì)報(bào)錯(cuò),不允許刪除。

如果在student表的外碼定義時(shí)指定的是cascade,即

create table student(sno int primary key, sname varchar(10), cno int, foreign key(cno) references class(cno) on delete cascade)

則表示級(jí)聯(lián)刪除,刪除class表中的一條數(shù)據(jù)時(shí),會(huì)把student表中對(duì)應(yīng)的數(shù)據(jù)一起刪除掉。此外,在外碼定義時(shí)還可以指定on delete set null,表示刪除class表中的一條數(shù)據(jù)時(shí),如果student表中有對(duì)應(yīng)的數(shù)據(jù),則把這些對(duì)應(yīng)的數(shù)據(jù)的cno設(shè)置為空值NULL。



查看完整回答
反對(duì) 回復(fù) 2019-01-05
  • 1 回答
  • 0 關(guān)注
  • 821 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)