婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > postgresql 實現多表關聯刪除

postgresql 實現多表關聯刪除

熱門標簽:地圖標注和圖片名稱的區別 海豐有多少商家沒有地圖標注 合肥公司外呼系統運營商 美容工作室地圖標注 外呼調研系統 打電話智能電銷機器人授權 漯河外呼電話系統 辦公外呼電話系統 重慶自動外呼系統定制

t_aj_ajjbxx

t_aj_ajfbxx

t_xt_dwxx

兩表關聯,刪除一張表中數據

delete from db_lx.t_aj_ajfbxx ajfb
USING db_lx.t_xt_dwxx dw 
where dw.c_bh=ajfb.c_ssdw and dw.c_sfbh='65';

只有t_aj_ajfbxx 表中數據被刪除

三表關聯,刪除一張表中數據

delete from db_lx.t_aj_ajjbxx ajjb
USING db_lx.t_aj_ajfbxx ajfb,db_lx.t_xt_dwxx dw
where ajjb.c_bh = ajfb.c_ajbh and ajfb.c_ssdw=dw.c_bh and dw.c_sfbh='65';

只有t_aj_ajjbxx 表中數據被刪除

補充:PostgreSQL的級聯刪除(主鍵刪除則外鍵數據記錄同時刪除)

背景描述:

最近的一個項目中,所涉及的數據庫表之間有設置級聯關系,即表legal_positionsinfo中的id是表legal_approval的外鍵。

現在有一個功能是根據id刪除表legal_positionsinfo中的一條記錄。

但是在程序調試刪除時,報錯如下:

update or delete on table "legal_positionsinfo" violates foreign key constraint "legal_approval_position_id_fkey" on table "legal_approval" DETAIL: Key (id)=(1) is still referenced from table "legal_approval".

主要是因為兩表之間存在級聯關系,主鍵記錄刪除則外鍵記錄也應該同時刪除。

解決辦法:

這里使用的是強大的數據庫管理和設計工具Navicat,需要在數據庫中設置級聯刪除,即將NO ACTION 改為 CASCADE即可:

那外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL都代表著什么意思呢?區別是什么呢?

CASCADE:父表delete、update的時候,子表會delete、update掉關聯記錄;

SET NULL:父表delete、update的時候,子表會將關聯記錄的外鍵字段所在列設為null,所以注意在設計子表時外鍵不能設為not null;

RESTRICT:如果想要刪除父表的記錄時,而在子表中有關聯該父表的記錄,則不允許刪除父表中的記錄;

NO ACTION:同 RESTRICT,也是首先先檢查外鍵;

SET DEFAULT:父表有變更時,子表將外鍵列設置成一個默認的值 但Innodb不能識別。

外鍵約束使用最多有兩種情況:

1)父表更新時子表也更新,父表刪除時如果子表有匹配的項,刪除失敗;

2)父表更新時子表也更新,父表刪除時子表匹配的項也刪除。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql 刪除重復數據的幾種方法小結
  • PostgreSQL 刪除check約束的實現
  • postgresql刪除主鍵的操作
  • PostgreSQL 實現快速刪除一個用戶
  • Postgresql創建新增、刪除與修改觸發器的方法
  • PostgreSQL刪除更新優化操作
  • mybatis postgresql 批量刪除操作方法
  • postgresql 刪除重復數據案例詳解

標簽:珠海 烏海 來賓 蚌埠 株洲 衡陽 晉城 錦州

巨人網絡通訊聲明:本文標題《postgresql 實現多表關聯刪除》,本文關鍵詞  postgresql,實現,多表,關聯,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgresql 實現多表關聯刪除》相關的同類信息!
  • 本頁收集關于postgresql 實現多表關聯刪除的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 正蓝旗| 永丰县| 蓝山县| 巴彦县| 菏泽市| 志丹县| 大城县| 三穗县| 花莲县| 吴堡县| 察哈| 勐海县| 平度市| 大城县| 慈溪市| 丰宁| 饶平县| 凌海市| 漳平市| 新宁县| 吴江市| 楚雄市| 霞浦县| 蚌埠市| 岐山县| 昌都县| 平潭县| 含山县| 扶沟县| 苏尼特左旗| 新野县| 双流县| 上高县| 宜阳县| 南城县| 凌海市| 绥德县| 锡林浩特市| 克什克腾旗| 河南省| 平顶山市|