2017-07-13 4 views
1

でforiegnキーである列に文字列を置換する方法:どのように私は、クエリを置き換えるSQLを使用しようとしています別の表

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

問題がtheIdであることはtheNumberとして別のテーブルmytable2に重要です

私が手にエラーがありません:

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". 

私は同時に交換したり、何らかの形で何かに参加をしなければならないようですが、どのようにないアイデアトンoこれを行う。あるいは、関係を簡単に取り除き、変更を加えて何らかの形で関係を追加するために、テーブルを変更する必要がありますか? (キーを落とす方法はありません。)(pgAdminIIIを見ると、ドロップして再追加するキーの名前がどこにあるかわからない)

基本的にいくつかの値を変更しようとしている文字列置換。これに

763755.46E292326.83N

763755.46T292326.83N

答えて

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) 
+0

大丈夫アップデートを得たが、私にエラー与えて戻って私の外部キーを追加:ERROR:または近くに "FOREIGN" で構文エラーを LINE 1:テーブルの変更mytable ADD CONSTRAINT FOREIGN KEY(... – Codejoy

+0

)私は答えを編集しました。 –

関連する問題