Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2007, 14h11   #1
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
Par défaut Contrainte, Foreign Key et erreur SQL

Bonjour,

J'ai une erreur dans un fichier sql et je ne comprends pas bien le message d'erreur..

Voici les 3 lignes sql qui posent probleme :

Code :
1
2
3
4
5
ALTER TABLE zzz_city ADD CONSTRAINT zzz_city_FK_1 FOREIGN KEY (alpha2) REFERENCES zzz_country (alpha2);
 
ALTER TABLE zzz_hotel ADD CONSTRAINT zzz_hotel_FK_1 FOREIGN KEY (alpha2) REFERENCES zzz_country (alpha2);
 
ALTER TABLE zzz_hotel ADD CONSTRAINT zzz_hotel_FK_2 FOREIGN KEY (city_code) REFERENCES zzz_city (city_code);
Et l'erreur :

Code :
ERREUR:  Il n'existe aucune contrainte correspondant aux clés données pour la table référencée «zzz_country»
Il existe bien un champ "alpha2" dans les tables zzz_city et zzz_country.. Alors d'ou peut venir ce souci ?

Postgresql 7.4 / Debian 4.0

Le sql est generé par Propel, a partir d'un schema xml.

Merci de vos avis.. par avance !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 15h11   #2
Membre habitué
 
Inscription : août 2007
Messages : 128
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 128
Points : 146
Points : 146
La traduction des applis de la 7.4 n'était pas géniale au début. Suivant votre version mineure de 7.4, vous pouvez avoir des messages erronées. Le mieux serait d'avoir le message en anglais.

Autre conseil, vérifiez si la contrainte n'existe pas déjà sur les tables citées.
gleu_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 16h31   #3
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
hmmm, la le message, je l'ai dans phpgadmin.. comment faire pour l'avoir en anglais ? executer le sql dans psql directement ?

J'ai verifié, comme contraintes, je n'ai que les clefs primaires, rien d'autre !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 00h30   #4
Membre habitué
 
Inscription : août 2007
Messages : 128
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 128
Points : 146
Points : 146
Il suffit d'indiquer :
SET lc_message TO 'C';
et, dans la même session, faire le ALTER.
gleu_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 11h36   #5
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
hmmm

Code :
1
2
3
4
5
6
SQL error:
 
ERREUR:  Paramètre de configuration "lc_message" non reconnu
 
IN statement:
SET lc_message TO 'C';
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 14h58   #6
Membre habitué
 
Inscription : août 2007
Messages : 128
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 128
Points : 146
Points : 146
Pardon, la variable est lc_messages (donc avec un s).
gleu_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 11h48   #7
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
merci.. c'est sur que le message anglais est bien plus clair :
Citation:
ERROR: there is no unique constraint matching given keys for referenced table "zzz_country"
j'ai rajouté la contrainte d'unicité, et hop, l'ALTER passe.. !

Merci de ton aide !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 17h50   #8
Membre habitué
 
Inscription : août 2007
Messages : 128
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 128
Points : 146
Points : 146
Pour informations, j'ai corrigé la traduction pour les versions 7.4, 8.0, 8.1, 8.2 et pour la prochaine 8.3.
gleu_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h29.


 
 
 
 
Partenaires

Hébergement Web