PostgresSql 多表關(guān)聯(lián)刪除語(yǔ)句的操作
最近用PostgresSql數(shù)據(jù)庫(kù)進(jìn)行多表關(guān)聯(lián)刪除的操作,在寫(xiě)sql語(yǔ)句的時(shí)候遇到了問(wèn)題:
DELETE s.* FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1 DELETE FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1
上面兩種寫(xiě)法操作后提示報(bào)錯(cuò),下面是PostgresSql數(shù)據(jù)庫(kù)對(duì)多表關(guān)聯(lián)操作的正確用法,多張表之間用USING連接:
DELETE FROM student s USING classroom c WHERE s.cid = c.id AND s.sid = 1
補(bǔ)充:PostgresSQL中的限制和級(jí)聯(lián)刪除
刪除和更新時(shí)對(duì)應(yīng)的操作是一樣的
1 Restrict
禁止刪除被引用的行 (不能將約束檢查推遲到事物的晚些時(shí)候)
2 No Action
如果存在任何引用行,則拋出錯(cuò)誤,如果不聲明任何行為則No Action就是缺省行為 (允許約束檢查推遲到事物的晚些時(shí)候)
3 Cascade
在刪除一個(gè)被引用的行時(shí),引用他的行被自動(dòng)刪除
4 Set Null
(外鍵上才有) 刪除被引用行時(shí),引用他的字段設(shè)置為NULL
5 Set Default
(外鍵上才有) 刪除被引用行時(shí),引用他的字段被設(shè)置為缺省值
注意:一個(gè)動(dòng)作聲明為Set Default 但是缺省值并不能滿(mǎn)足外鍵,那么動(dòng)作就會(huì)失敗
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL 序列綁定字段與不綁定字段的區(qū)別說(shuō)明
這篇文章主要介紹了PostgreSQL 序列綁定字段與不綁定字段的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02PostgreSQL中關(guān)閉死鎖進(jìn)程的方法
這篇文章主要介紹了PostgreSQL中關(guān)閉死鎖進(jìn)程的方法,本文給出兩種解決這問(wèn)題的方法,需要的朋友可以參考下2015-02-02在docker上部署postgreSQL主從的超詳細(xì)步驟
使用Docker能夠更加高效地部署和管理應(yīng)用程序,提高開(kāi)發(fā)和運(yùn)維的效率,下面這篇文章主要給大家介紹了關(guān)于在docker上部署postgreSQL主從的超詳細(xì)步驟,文中通過(guò)代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08postgreSQL數(shù)據(jù)庫(kù)基本概念教程
這篇文章主要為大家介紹了postgreSQL數(shù)據(jù)庫(kù)的基本概念教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04淺談Postgresql默認(rèn)端口5432你所不知道的一點(diǎn)
這篇文章主要介紹了淺談Postgresql默認(rèn)端口5432你所不知道的一點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01postgresql coalesce函數(shù)數(shù)據(jù)轉(zhuǎn)換方式
這篇文章主要介紹了postgresql coalesce函數(shù)數(shù)據(jù)轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01使用postgresql 模擬批量數(shù)據(jù)插入的案例
這篇文章主要介紹了使用postgresql 模擬批量數(shù)據(jù)插入的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01