2017-07-13 5 views
1

Je suis en train d'utiliser un SQL remplacer requête:Comment remplacer une chaîne dans une colonne, ce qui est une clé foriegn dans une autre table

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

Le problème est theId est une clé dans une autre table mytable2 comme theNumber

l'erreur que je reçois est:

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

Il est comme je dois faire une jointure remplacer ou quelque chose d'une certaine façon en même temps, aucune idée t o fais ça. Ou peut-être que je dois modifier la table pour se débarrasser de la relation brièvement, faire les changements et ajouter la relation en quelque sorte? (Je ne sais pas comment lâcher les touches etc ..) (En regardant dans pgAdminIII je ne peux même pas voir où j'obtiendrais le nom de la clé à déposer et à rajouter)

J'essaie de changer certaines valeurs une chaîne remplacer.

763755.46E292326.83N

à ceci:

763755.46T292326.83N

Répondre

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

bien reçu les mises à jour, mais en ajoutant ma clé étrangère est de retour me donne une erreur: erreur: erreur de syntaxe à ou près "étrangers" LIGNE 1: Modifier table mytable AJOUTER CONTRAINTE FOREIGN KEY (... – Codejoy

+0

J'ai modifié la réponse, essayez maintenant. –