Les valeurs ne peux pas INSERT avec clé étrangère dans MySQL
-
19-09-2019 - |
Question
J'ai MySQL (5.1.42 sur OsX) Course à pied. J'ai ajouté une clé étrangère avec cette déclaration sql:
ALTER TABLE `Portal`.`Mitarbeiter_2_BlackBerry`
ADD CONSTRAINT `fk_Blackberry`
FOREIGN KEY (`id` )
REFERENCES `Portal`.`Blackberry` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `fk_Blackberry` (`id` ASC)
Mais lorsque je tente d'insérer des valeurs dans ce tableau avec cette instruction SQL:
INSERT INTO Mitarbeiter_2_BlackBerry SET uebergabeAm = '2009-12-01 13:00:00', fk_Blackberry = (SELECT id FROM Blackberry WHERE id = '1')
Je suis l'erreur suivante: Code d'erreur: 1054 Unknown column 'fk_BlackBerry' dans 'liste des champs'
Quelqu'un une idée de ce qui pourrait être erroné? Merci pour tout soupçon :-) Lars.
La solution
Vous avez besoin de mettre la valeur dans la colonne id
pas la contrainte de fk_Blackerry
. Et si vous connaissez la valeur est 1
, il suffit d'insérer 1
- vous ne avez pas besoin du sous-requête.
Autres conseils
Selon la syntaxe qui vous vous pouvez consulter ici.
http: //dev.mysql .com / doc / refman / 5.1 / fr / InnoDB-clé étrangère constraints.html
fk_Blackerry est le symbole, pas la colonne. Colonne sur laquelle est contrainte de clé étrangère id, donc la requête doit être mis à jour
INSERT INTO Mitarbeiter_2_BlackBerry SET uebergabeAm = '2009-12-01 13:00:00', id = (SELECT id à partir de Blackberry où id = '1')