2016-12-07 6 views
1

Я пытаюсь заполнить столбец s_phone_mobile от oc_t_user таблица до oc_t_item таблица в базе данных mysql. Я использую следующий запрос:Копирование содержимого столбца из одной таблицы в другую mysql

INSERT INTO `oc_t_item` (s_phone_mobile) 
SELECT s_phone_mobile 
FROM oc_t_user; 

Но я получаю следующее сообщение об ошибке:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`poljo_test`.`oc_t_item`, CONSTRAINT `oc_t_item_ibfk_2` FOREIGN KEY (`fk_i_category_id`) REFERENCES `oc_t_category` (`pk_i_id`)) 

я понимаю, что это может быть дубликатом вопрос, но каждый «трюк» Я пытался не работал для меня.

+0

Просьба показать определения таблиц для 'oc_t_item' _and_ любых таблиц, с которыми она имеет отношения через первичный/внешний ключ. –

+0

Привет, спасибо за ответ. Вы имеете в виду табличные структуры? – Nancy

+0

да, пожалуйста, покажите мне структуры. Я предполагаю, что проблема будет легко обнаружить с этой информацией. –

ответ

1

Проблема связана с тем, что ваша вставка указала только значение для s_phone_mobile, эффективно указав NULL для трех внешних ключей, которые содержатся в этой таблице.

Ограничение внешнего ключа в MySQL гарантирует, что ваша вставка относится к внешним ключам, которые либо существуют, либо, возможно, разрешают NULL, если вы определили ключи, которые должны быть обнуляемы. Я думаю, что по крайней мере один из следующих клавиш не обнуляемым:

fk_i_user_id 
fk_i_category_id 
fk_c_currency_code 

Таким образом, чтобы решить эту проблему, необходимо также ввести значения внешнего ключа для этих трех ключей, если ключ не позволяют NULL и вы Хорошо с этим. И убедитесь, что указанные значения фактически соответствуют записям в соответствующих родительских таблицах.