假设我有两个表:客户和城市.有许多客户住在同一个城市.城市有一个主要的uid.客户通过Customer.city_uid对其各自的城市进行外键引用.
出于外部原因,我必须互换两个City.uids.但客户应该留在他们的城市.因此,有必要交换Customer.city_uids.所以我想我首先交换City.uids,然后通过UPDATE语句更改Customer.city_uids.不幸的是,我不能这样做,因为这些uid是从Customer-table引用的,Postgresql阻止我这样做.
有没有一种简单的方法可以将两个City.uids彼此交换以及Customer.city_uids?
一种解决方案可能是:
BEGIN; 1. Drop foreign key 2. Make update 3. Create foreign key COMMIT;
要么:
BEGIN; 1. Insert "new" correct information 2. Remove outdated information COMMIT;