J'essaye d'ajouter des clefs étrangères à ma table mais recevant cette erreur. Code d'erreur: 1005 Impossible de créer la table 'william. # Sql-88c_3' (erreur: 150) J'ai 3 tables. employé, client et contrat.MySQL Error Code: 1005
employé [employee_no PK], contrat client [customer_no PK] [contract_no PK] Je veux avoir les clés étrangères pour contrat contrat [contract_no PK, employee_no FK], customer_no FK]
J'ai essayé de le faire directement il a échoué, je suis en train d'essayer la déclaration alter.Is quelque chose de mal avec le script Alter?
ALTER TABLE contract
ADD CONSTRAINT `employee_no_fk2` FOREIGN KEY (`employee_no`) REFERENCES `employee`
(`employee_no`);
ALTER TABLE contract
ADD CONSTRAINT `Customer_no_fk2` FOREIGN KEY (`Customer_no`) REFERENCES `client`
(`Customer_no`);
Le deuxième lien a été très utile. J'essayais d'ajouter une clé étrangère avec delete set null, mais ma colonne cible n'avait pas de contrainte nulle, ce qui me donnait ce problème. Je pourrais résoudre le problème avec la commande 'SHOW engine innodb STATUS;' –
Deuxième lien ftw! Je faisais comme il le décrit: "La variante la plus commune que j'ai rencontrée est où la colonne de clé primaire utilise un type de données int non signé et la colonne de clé étrangère utilise un type de données int.Il est assez agréable que le moteur InnoDB arrête Naturellement, vous le corrigez en changeant le type de données de clé étrangère pour qu'il corresponde au type de données int non signé. " –