Скопируйте содержимое столбца из одной таблицы в другую mysql
Я пытаюсь заполнить колонку s_phone_mobile
от oc_t_user
стол к oc_t_item
таблица в базе данных 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`))
Я понимаю, что это может быть повторяющийся вопрос, но каждый "трюк", который я попробовал, не работал для меня.
1 ответ
Ваша проблема вызвана тем, что ваша вставка указывает только значение для s_phone_mobile
эффективно уточняя NULL
для трех внешних ключей, которые содержит эта таблица.
Ограничение внешнего ключа в MySQL гарантирует, что ваша вставка ссылается на внешние ключи, которые либо существуют, либо, возможно, позволяют NULL
если вы определили ключи, которые можно обнулять. Я предполагаю, что по крайней мере один из следующих ключей не может быть обнуляемым:
fk_i_user_id
fk_i_category_id
fk_c_currency_code
Таким образом, чтобы решить эту проблему, вы также должны вставить значения внешнего ключа для трех указанных выше ключей, если только ключ не позволяет NULL
и ты в порядке с этим. И убедитесь, что указанные значения действительно соответствуют записям в соответствующих родительских таблицах.