2016-10-26 4 views
0

У меня есть большая проблема. У меня есть две связанные таблицы: родительский и дочерний, которые связаны с основным и фиксированным ключами.Вставить данные в ошибку таблицы MYSQL

Основная таблица:

CREATE TABLE `project_main` (
    `ProjectMainId` int(11) NOT NULL, 
    `ProjectTitle` varchar(150) DEFAULT NULL, 
    `ProjectShortTitle` varchar(50) DEFAULT NULL, 
    `ProjectIntroduction` text 

) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

подчиненная таблица:

CREATE TABLE `project_detail` (
    `ProjectDetailId` int(11) NOT NULL, 
    `ProjectProtocolNumber` int(11) DEFAULT NULL, 
    `ProjectNumberPatients` int(11) DEFAULT NULL, 
    `ProjectNumberSites` int(11) DEFAULT NULL 
    `ProjectMainId` int(11) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

При попытке вставить данные в родительскую таблицу, MySQL говорит:

1452 - Невозможно добавить или обновить дочерняя строка: ограничение внешнего ключа сбой (ctb_db.project_main, CONSTRAINT project_main_ibfk_1 FOREIGN KEY (ProjectMainId) ЛИТЕРАТУРЫ project_detail (ProjectMainId))

Эта вещь не произошло в MSSQL базы данных :(

С уважением, Васко

+0

Этот код создания таблицы, который вы отправили, не определяет никаких внешних ключей. вопрос. Мы можем предложить помощь без четкого определения. – arkascha

+0

ALTER TABLE 'project_main' ADD CONSTRAINT' project_main_ibfk_1' FOREIGN KEY ('ProjectMainId') ССЫЛКИ' project_detail' ('ProjectMainId'), –

+0

Пожалуйста, не добавляйте дополнительную информацию в комментарии Добавьте их к самому вопросу. Рядом с вашим вопросом есть ссылка «edit». _Use it_. – arkascha

ответ

0

Я пытаюсь вставить данные с помощью PHPMyAdmin и SQLYog. Я не использую код для вставки. Это делается для меня :)

+0

Pls не dd Ваша часть вопроса в качестве ответа. Attache эта часть с вопросом –

0

Вы пытаетесь вставить значение в дочерний ключевой столбец с именем ProjectMainId, который не существует в таблице Project_main. Php my admin auto создал отношения.

0

Нет, я просто вставляю данные в таблицу Project_main. Project_detail пуст. Я вставляю данные в Project_main и, кроме того, когда автоинкремент генерирует ProjectMainId, я вставляю его в ProjectDetail. Но отношение не дает мне вставлять данные в таблицу project_main. Это проблема.

+0

Pls не добавляет вашу часть вопроса как ответ. Прикрепите эту часть вопросом –

0

Не задайте отношения внешних ключей для первичной таблицы. Определите на дочернем столе. Здесь вы определили FOREIGN KEY Constraint в основной таблице. Установите это ограничение для дочерней таблицы. Вы сделали здесь противоположный путь.

+0

@Vaso Zonjic: Согласно вашим объяснениям, это правильный ответ. Вы можете пометить это как правильное (если можете). –

0

Я понял, в чем проблема. Я создал отношение в SQLYog и это инвертированные отношения :(Теперь я исправляю все отношения в дизайнере PHPMYADMIN. Никогда не используйте SQLYog, пожалуйста.

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