假設我有兩個表格:Customer
和City
。有很多Customer
住在同一個City
。這些城市的主要關鍵是uid
。客戶通過Customer.city_uid
可以獲得對各自城市的外部參照。如何更改postgresql中的外鍵值?
由於外在原因,我必須互相交換兩個City.uid
。但客戶應該留在他們的城市。因此有必要更換Customer.city_uid
。所以我想我先交換City.uid
s,然後通過UPDATE
-statement更改Customer.city_uid
s。不幸的是,我不能這樣做,因爲這些uids
引用自Customer
-table,PostgreSQL阻止我這樣做。
是否有簡單的方法將兩個City.uid
與另一個以及Customer.city_uid
s交換?
如果您有N個引用「主」(在您的情況下爲城市)表中的表格,則問題會變得更大。到目前爲止,這是我最喜歡的解決方案:http://stackoverflow.com/a/18273069/633961(但我仍然在尋找更好的方法來解決這個問題)。 – guettli