我正在尝试使用SQL替换查询:

UPDATE mytable SET theId = Replace(theId, 'E', 'T')

问题是theId是另一个表中的键mytable2astheNumber
我得到的错误是:
ERROR: insert or update on table "mytable" violates foreign key constraint "mytable_theId_a0b4efa1_fk_mytable2_theNumber"
SQL state: 23503
Detail: Key (theId)=(763755.46T292326.83N) is not present in table "mytable2".

就像我必须同时做一个join-replace或者其他什么,不知道该怎么做。或者我可能需要修改表来暂时摆脱关系,做些更改并以某种方式添加关系?(不知道如何删除密钥等…)(在pgAdminIII I中,我甚至看不到在哪里可以获得要删除和重新添加的密钥的名称)
我试图改变一些基本上是字符串替换的值。
763755.46E292326.83N
对此:
763755.46T292326.83N

最佳答案

Alter table myTable2 DROP CONSTRAINT mytable_theId_a0b4efa1_fk_mytable2_theNumber

UPDATE mytable SET theId = Replace(theId, 'E', 'T')

Alter table myTable2  ADD CONSTRAINT FK_myTable2_theID FOREIGN KEY(theNumber) REFERENCES myTable2(theId)

关于postgresql - 如何替换列中的字符串,该列是另一个表中的外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45087563/

10-16 08:22