Primary-Key
更新主鍵
我想更新一個主鍵列,但更改應該級聯到該主鍵用作外鍵的所有其他子表。
範例:table1 將列“slug”作為主鍵。一行有蛞蝓“foo”,應該是“bar”。表“table1”在其他十個表中用作外鍵(子表)。
我很容易創建這樣做:
begin; update table1 ... update table_child1 ... update table_child2 ... ... commit;
有沒有工具可以讓這更容易?例如,查看數據庫佈局並創建更新命令的工具。
我使用 PostgreSQL 9.1,但首選攜帶式解決方案。
更新:我不想/可以更改數據庫架構以在數據庫級別包含“更新級聯”。
如果您的
FOREIGN
鍵是使用該ON UPDATE CASCADE
選項定義的,那麼您無需執行任何更新父表的操作。但似乎這些
ON UPDATE
選項尚未在 Django 中正確實現。
我為我的環境(django)編寫了一個管理命令。