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 但是缺省值并不能滿足外鍵,那么動(dòng)作就會(huì)失敗
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL ERROR: invalid escape string 解決辦法
這篇文章主要介紹了PostgreSQL ERROR: invalid escape string 解決辦法,本文環(huán)境是JDBC+PostgreSQL,需要的朋友可以參考下2014-07-07
postgresql的now()與Oracle的sysdate區(qū)別說(shuō)明
這篇文章主要介紹了postgresql的now()與Oracle的sysdate區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問(wèn)題
這篇文章主要介紹了解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
CentOS中運(yùn)行PostgreSQL需要修改的內(nèi)核參數(shù)及配置腳本分享
這篇文章主要介紹了CentOS中運(yùn)行PostgreSQL需要修改的內(nèi)核參數(shù)及配置腳本分享,本文從系統(tǒng)資源限制類(lèi)和內(nèi)存參數(shù)優(yōu)化類(lèi)來(lái)進(jìn)行說(shuō)明,需要的朋友可以參考下2014-07-07
postgresql中wal_level的三個(gè)參數(shù)用法說(shuō)明
這篇文章主要介紹了postgresql中wal_level的三個(gè)參數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
使用docker compose啟動(dòng)postgresql的示例代碼
要在啟動(dòng) PostgreSQL 容器時(shí)執(zhí)行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目錄,這個(gè)目錄下的 SQL 文件會(huì)在容器啟動(dòng)時(shí)被自動(dòng)執(zhí)行,下面是如何修改 Docker Compose 配置文件,以便在啟動(dòng)時(shí)執(zhí)行初始化 SQL 腳本,需要的朋友可以參考下2024-10-10
Postgresql數(shù)據(jù)庫(kù)中的json類(lèi)型字段使用示例詳解
JSON的主要用于在服務(wù)器與web應(yīng)用之間傳輸數(shù)據(jù),這篇文章主要介紹了Postgresql數(shù)據(jù)庫(kù)中的json類(lèi)型字段使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
postgresql 賦權(quán)語(yǔ)句 grant的正確使用說(shuō)明
這篇文章主要介紹了postgresql 賦權(quán)語(yǔ)句 grant的正確使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
PostgreSQL時(shí)間相差天數(shù)實(shí)例例子代碼解析
在PostgreSQL數(shù)據(jù)庫(kù)中計(jì)算兩個(gè)日期或時(shí)間戳之間的差異可以通過(guò)多種方法實(shí)現(xiàn),常用的有通過(guò)日期轉(zhuǎn)換、AGE函數(shù)、INTERVAL和+運(yùn)算符、DATE_PART函數(shù)以及利用CURRENT_DATE或NOW()函數(shù),大家可以根據(jù)自己的需求選擇合適的方式,需要的朋友可以參考下2024-11-11

