Я начинаю здесь, все, что я пытаюсь сделать, это вставить в поле таблицы, которое является внешним ключом, пожалуйста, взгляните на эти две таблицы:MySQL # 1452 - Невозможно добавить или обновить дочернюю строку
Таблица Категория
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;
и настольный 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;
После связывания FO царствовать ключ id_cat вручную (ON UPDATE SET NULL ON DELETE CASCADE), это как дб выглядит
и после вставки данных в catégorie таблице выглядит как этот
Но, к сожалению Я не смог выполнить этот запрос:
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)
ошибка говорит:
1452 - Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (
lametcom
.annonce
, скованностьannonce_ibfk_2
FOREIGN KEY (id_cat
) ЛИТЕРАТУРЫannonce
(id_cat
) ON DELETE SET NULL ON UPDATE CASCADE)
Может кто-нибудь помочь, пожалуйста, и очень жаль, что мой плохой английский я надеюсь, что вы можете понять, что я имею в виду
Вставка пустой строки в столбец не нулевой. пропустите этот столбец и позвольте автоинкременту беспокоиться об этом: 'INSERT INTO annonce (titre, description, tarif, deplacement, date_creation, date_expiration, id_cat) VALUES (« ничего »,« ничего », 2,3, '2017- 04-01 ',' 2017-04-01 ', 2) ' –
Спасибо за отзыв i woldn't знает, что он работает;) – user7412247