2017-01-12 9 views
0

Я начинаю здесь, все, что я пытаюсь сделать, это вставить в поле таблицы, которое является внешним ключом, пожалуйста, взгляните на эти две таблицы: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), это как дб выглядит

DB designer

и после вставки данных в catégorie таблице выглядит как этот

Categorie table

Но, к сожалению Я не смог выполнить этот запрос:

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)

Может кто-нибудь помочь, пожалуйста, и очень жаль, что мой плохой английский я надеюсь, что вы можете понять, что я имею в виду

+0

Вставка пустой строки в столбец не нулевой. пропустите этот столбец и позвольте автоинкременту беспокоиться об этом: 'INSERT INTO annonce (titre, description, tarif, deplacement, date_creation, date_expiration, id_cat) VALUES (« ничего »,« ничего », 2,3, '2017- 04-01 ',' 2017-04-01 ', 2) ' –

+1

Спасибо за отзыв i woldn't знает, что он работает;) – user7412247

ответ

1

Неправильное ограничение внешнего ключа. У вас есть

FOREIGN KEY id_cat REFERENCES annonce (id_cat) 

, но это должно быть:

FOREIGN KEY id_cat REFERENCES categorie (id_cat) 

Имя таблицы в ограничения внешнего ключа должно быть таблица, которую вы ссылаетесь к.

+0

Большое спасибо, я чувствовал себя настолько глупо, что делал этот тип сбоев: D – user7412247

 Смежные вопросы

  • Нет связанных вопросов^_^