您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在PostgresSql中對多表關聯進行刪除,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
最近用PostgresSql數據庫進行多表關聯刪除的操作,在寫sql語句的時候遇到了問題:
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
上面兩種寫法操作后提示報錯,下面是PostgresSql數據庫對多表關聯操作的正確用法,多張表之間用USING連接:
DELETE FROM student s USING classroom c WHERE s.cid = c.id AND s.sid = 1
補充:PostgresSQL中的限制和級聯刪除
刪除和更新時對應的操作是一樣的
1 Restrict
禁止刪除被引用的行 (不能將約束檢查推遲到事物的晚些時候)
2 No Action
如果存在任何引用行,則拋出錯誤,如果不聲明任何行為則No Action就是缺省行為 (允許約束檢查推遲到事物的晚些時候)
3 Cascade
在刪除一個被引用的行時,引用他的行被自動刪除
4 Set Null
(外鍵上才有) 刪除被引用行時,引用他的字段設置為NULL
5 Set Default
(外鍵上才有) 刪除被引用行時,引用他的字段被設置為缺省值
注意:一個動作聲明為Set Default 但是缺省值并不能滿足外鍵,那么動作就會失敗
上述就是小編為大家分享的怎么在PostgresSql中對多表關聯進行刪除了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。