欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

20.外鍵

  • • 發(fā)表于 7年前
  • • 作者 大妖怪
  • • 10869 人瀏覽
  • • 1 條評(píng)論
  • • 最后編輯時(shí)間 7年前
  • • 來(lái)自 [技 術(shù)]

原創(chuàng)聲明:本文為作者原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載,經(jīng)授權(quán)轉(zhuǎn)載需注明作者和出處

記得在第十三章左聯(lián),創(chuàng)建student表的時(shí)候說(shuō)了句,字段class_i是當(dāng)做一個(gè)外鍵,并不是一個(gè)真的外鍵。那么真的外鍵又是個(gè)啥?
外鍵屬于一種約束,限制你對(duì)數(shù)據(jù)庫(kù)的操作,它是為了防止因?yàn)椴僮鞑划?dāng)產(chǎn)生冗余數(shù)據(jù)/臟數(shù)據(jù)的一種約束。刪掉幾個(gè)新增的class_id為3的數(shù)據(jù),右鍵student表,選擇設(shè)計(jì)表。然后創(chuàng)建一個(gè)外鍵,將class_id設(shè)為一個(gè)外鍵:


然后保存。
然后,我們?nèi)lass表刪除id為1的數(shù)據(jù):

這時(shí)候刷新student表,你會(huì)發(fā)現(xiàn),student表中的class_id為1的數(shù)據(jù)一起被刪除了:

我們可以找到,設(shè)置外鍵的時(shí)候,刪除時(shí)和新增時(shí)都有四個(gè)選項(xiàng):

沒錯(cuò),造成student表中數(shù)據(jù)被刪除的就是刪除時(shí)的這個(gè)CASCADE。這四個(gè)選項(xiàng)是事件觸發(fā)限制,意思分別是:

  • CASCADE: 在父表上update/delete記錄時(shí),同步update/delete掉子表的匹配記錄
  • SET NULL: 在父表上update/delete記錄時(shí),將子表上匹配記錄的列設(shè)為null
  • NO ACTION: 如果子表中有匹配的記錄,則不允許對(duì)父表對(duì)應(yīng)候選鍵進(jìn)行update/delete操作
  • RESTRICT: 如果想要?jiǎng)h除父表的記錄時(shí),而在子表中有關(guān)聯(lián)該父表的記錄,則不允許刪除父表中的記錄
  • 除了這四種,還有一個(gè)不選擇,不選默認(rèn)是RESTRICT。

以上是通過軟件來(lái)創(chuàng)建外鍵,如果通過語(yǔ)句,應(yīng)該是這樣:

CREATE TABLE student(
   id INT NOT NULL AUTO_INCREMENT,
   name VARCHAR(5) NOT NULL,
   gender VARCHAR(1) NOT NULL,
   stu_no VARCHAR(10) NOT NULL,
   class_id INT NOT NULL,
   PRIMARY KEY(id),
   FOREIGN KEY(class_id) REFERENCES class(id)
);

這句話是說(shuō)引用class表的id字段到student表的class_id字段作為外鍵,查看外鍵,可以發(fā)現(xiàn)創(chuàng)建出來(lái)的外鍵刪除時(shí)和更新時(shí)都是默認(rèn)的:

如果想要修改觸發(fā)限制可以這么做:

CREATE TABLE student(
   id INT NOT NULL AUTO_INCREMENT,
   name VARCHAR(5) NOT NULL,
   gender VARCHAR(1) NOT NULL,
   stu_no VARCHAR(10) NOT NULL,
   class_id INT NOT NULL,
   PRIMARY KEY(id),
   FOREIGN KEY(class_id) REFERENCES class(id) ON DELETE CASCADE ON UPDATE CASCADE
);

之所以把外鍵放到最后,是因?yàn)槠綍r(shí)寫程序不太喜歡使用這種方式,用得非常少,我也不是太會(huì),因?yàn)橛袝r(shí)候覺得數(shù)據(jù)庫(kù)限制得太強(qiáng)了不太自由,相比之下我本人更喜歡在程序中維護(hù)數(shù)據(jù)的一致性。那個(gè),對(duì)于外鍵這塊,我先干了,你們隨意。
emmm,mysql的基礎(chǔ)到此結(jié)束了,還有啥索引什么的,以后遇到了講講。后面的內(nèi)容不定期更新,也都是零散講一些技巧。

分享到:
1條評(píng)論
Ctrl+Enter
作者

大妖怪

大妖怪

APP:1 帖子:76 回復(fù):200 積分:7517

已加入社區(qū)[3073]天

夢(mèng)里巷口,可有你倚門回首

作者詳情》
Top