我在 postgres 中有一些相互參考的表。我想建立一種機制來“歸檔”我的一個表中的行。也就是說,我希望仍然保留資料并能夠從中讀取資料,但我不想再編輯該行或編輯其他表中的外鍵來參考這個現在“存檔”的行。
這是可以實作的嗎?本質上,我希望資料庫的其余部分表現得像該行的主鍵不再存在一樣,如果您嘗試設定無效的外鍵,postgres 將拋出一個錯誤,即在參考的表中找不到該鍵.
謝謝
編輯:我不想實際存檔任何資料。我說“存檔”是因為我想不出更好的方式來描述它。本質上,我只是希望能夠更改表的一行中的 bool 值,然后向 postgres 發出信號,以不再允許對該行進行任何更改或使用該行 id 作為任何其他表中的外鍵。某人應該能夠做的唯一一件事就是將該 bool 更改回 true,然后正常互動。
uj5u.com熱心網友回復:
添加一個標志列,一個布林值或一個列舉 jf 有多個狀態。Postgres 不會為你檢查這個,你必須在每個適用的查詢中添加一個 where 子句。
這很容易出錯。您可以通過定義已經具有 where 子句的視圖來使其更安全。對該視圖執行所有查詢。將表重命名為“table_all”之類的名稱并讓視圖使用表的名稱,然后所有現有查詢都將正常作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/504045.html
標籤:sql 数据库 PostgreSQL
上一篇:匹配值并創建熊貓資料框
