如何替换列中的字符串,这是另一个表中的foriegn键

时间:2017-07-13 17:38:36

标签: postgresql foreign-key-relationship

我正在尝试使用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

1 个答案:

答案 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)