我正在尝试使用SQL替换查询:
UPDATE mytable SET theId = Replace(theId, 'E', 'T')
问题是theId
是另一个表mytable2
中的关键theNumber
我得到的错误是:
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".
就像我必须同时以某种方式进行连接替换或某事,不知道如何做到这一点。或者也许我必须改变表格以简单地摆脱关系,做一些改变并以某种方式添加关系? (不知道如何放下键等等。)(看看pgAdminIII,我甚至不知道在哪里可以获得要删除和重新添加的键的名称)
我试图改变一些值,基本上是字符串替换。
763755.46E292326.83N
对此:
763755.46T292326.83N
答案 0 :(得分:1)
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)