Je suis begginer ici, tout ce que j'essaie de faire est d'insérer dans un champ de table qui est une clé étrangère, s'il vous plaît jeter un oeil à ces deux tables:MySQL # 1452 - Impossible d'ajouter ou de mettre à jour une ligne enfant
tableau Catégorie
CREATE TABLE IF NOT EXISTS `categorie` (
`id_cat` int(2) NOT NULL AUTO_INCREMENT,
`nom_cat` varchar(20) NOT NULL,
PRIMARY KEY (`id_cat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
et une table Annonce
CREATE TABLE IF NOT EXISTS `annonce` (
`id_annonce` int(6) NOT NULL AUTO_INCREMENT,
`titre` varchar(30) NOT NULL,
`description` varchar(255) NOT NULL,
`tarif` float NOT NULL,
`deplacement` int(2) NOT NULL,
`date_creation` date NOT NULL,
`date_expiration` date NOT NULL,
`image` varchar(255) NOT NULL,
`id_cat` int(2) DEFAULT NULL,
PRIMARY KEY (`id_annonce`),
KEY `id_cat` (`id_cat`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Après la liaison de la fo régnera id_cat touche manuellement (ON UPDATE SET NULL ON DELETE CASCADE) qui est la façon dont le db ressemble
et après l'insertion de données dans la table Catégorie il ressemble à ceci
Mais malheureusement je ne pouvais pas exécuter cette requête:
INSERT INTO annonce (id_annonce, titre, description, tarif, deplacement,
date_creation, date_expiration,id_cat)
VALUES('','anything','anything',2,3,'2017-04-01','2017-04-01',2)
l'erreur dit:
1452 - Impossible d'ajouter ou mettre à jour une ligne enfant: une contrainte de clé étrangère échoue (
lametcom
.annonce
, CONTRAINTEannonce_ibfk_2
FOREIGN KEY (id_cat
) RÉFÉRENCESannonce
(id_cat
) ON DELETE SET NULL ON UPDATE CASCADE)
peut-elle aider quelqu'un s'il vous plaît et désolé pour mon pauvre anglais j'espère que vous pouvez comprendre ce que je veux dire
insertion d'une chaîne vide dans une colonne non nulle. omettre cette colonne et laisser l'incrément automatique s'inquiéter à ce sujet: 'INSERT INTO annonce (titre, description, tarif, déplacement, date_creation, date_expiration, id_cat) VALEURS ('n'importe quoi', 'n'importe quoi', '2,3', '2017- 04-01 ',' 2017-04-01 ', 2) ' –
Merci pour le conseil que je ne sais pas que ça marche;) – user7412247