relations impossible dans base

Bonjour, dans base je n’arrive pas à créer de relations entre plusieurs tables, voici le message d’erreur
Statut SQL: S0011
Code d’erreur: -170

Primary or unique constraint required on main table: “T_EMP” in statement [ALTER TABLE “T_WAR_01” ADD FOREIGN KEY (“nom_emp”) REFERENCES “T_EMP” (“nom_emp”)]

Merci de votre aide.

Bonjour

La table contient sans doute des données ne permettant pas la création: figurant dans l’une et pas dans l’autre par ex.

Cordialement

Bonjour, non, le problème ne vient pas de là.
J’essaie de faire des relations entre champs existants dans les 2 tables et avec les mêmes caractéristiques (nom de champ et type de champ identiques).
Si vous avez la solution, merci d’avance pour votre aide.

@nemo52

Je crains que tu ne m’aies pas bien lu : je ne dis pas que les champs n’existent pas dans les deux tables, ni qu’ils sont de types différents (le nom importe peu). Je dis qu’il y a sans doute des enregistrements qui ne permettent pas la création de la relation. Par exemple une table Clients et une table Code Postal. Si un enegistrement de Client à un cp 23100 il faut que ce code figure dans la table CP…

Si ce n’est pas cela, il faudrait éditer ta première question (lien sous cette dernière) pour ajouter une base exemple permettant de reproduire le problème. Attention à ne pas joindre de fichier contenant des données personnelles ou confidentielles…

Cordialement

Bonsoir, je viens d’essayer en complétant mes tables d’enregistrements, et c’est toujours pareil. Il faudra que je crée une base exemple pour l’insérer à ma question, car celle sur laquelle je travaille contient effectivement des données personnelles.
Je m’en occuperai plus tard, et j’espère que la solution sera trouvée.
Merci en attendant et bonne soirée

[LibreOffice Version : 6.4.6.2 Build ID : 1:6.4.6-0ubuntu0.20.04.1] [Base]

J’ai le même problème avec des tables vierges nouvellement créées.

Dans 2 tables avec un attribut commun “Trigramme” de type Char de longueur 3 il m’est impossible de créer une relation.

Les deux tables ont été créées avec l’assistant avec une clé automatique “ID” elles sont actuellement vierges de données.

L’erreur est la suivante

firebird_sdbc error:
*unsuccessful metadata update
*ALTER TABLE tStagiaires failed
*unknown ISC error 336068626
caused by
‘ALTER TABLE “tStagiaires” ADD FOREIGN KEY (“Trigramme”) REFERENCES “tCompltInfo” (“Trigramme”)’

Bonsoir,

Ce cas spécifique a fait l’objet d’un échange séparé : voir ici.

Cordialement, Michel

Bonjour @nemo52

Primary or unique constraint required on main table: "T_EMP" in statement [ALTER TABLE "T_WAR_01" ADD FOREIGN KEY ("nom_emp") REFERENCES "T_EMP" ("nom_emp")]

Le message d’erreur indique qu’il manque une contrainte PRIMARY KEY ou UNIQUE sur le champ de la table T_EMP sur lequel une clé externe doit être créée “nom_emp”. Ceci pourrait s’expliquer par le fait que vous ayez défini un autre champ de T_EMP comme clé primaire. Pouvez-vous vérifier ce point ?

Si ce n’est pas le cas, vous pouvez vous inspirer de la méthodologie explicitée dans cette autre réponse pour résoudre votre problème, après avoir exporté les données de la table T_emp. Vous les importerez après la création de la relation.


Pour montrer à la communauté que la question a trouvé sa réponse, cliquez sur ✓ à côté de la “bonne” réponse, et “votez” en cliquant sur la flèche ^ de toute réponse utile. Ce sont les mécanismes utilisés pour communiquer la qualité des questions et réponses sur ce site. Merci!

Pour tout complément d’information, utilisez les boutons situés en dessous de votre question et éditez votre question ou simplement ajouter un commentaire. SVP ! Ne répondez pas à votre propre question à moins d’y apporter une réelle réponse.

Cordialement, Michel

Bonjour @nemo52

Votre problème est-il résolu ? Si oui, merci de cocher la marque ronde à gauche de la bonne réponse.

Cordialement, Michel