2016-12-07 2 views
1

Ich versuche, Spalte s_phone_mobile von oc_t_user Tabelle bis oc_t_item Tabelle in MySQL-Datenbank zu füllen. Ich verwende die folgende Abfrage:Kopiere Spalteninhalt von einer Tabelle in eine andere mysql

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

Aber ich erhalte den folgenden Fehler:

#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`)) 

Ich weiß, diese doppelte Frage sein kann, aber jeder „Trick“ Ich habe versucht, für mich hat nicht funktioniert.

+0

Bitte zeigen Sie die Tabellendefinitionen für 'oc_t_item' _und_ alle Tabellen an, mit denen eine Beziehung über Primär-/Fremdschlüssel besteht. –

+0

Hallo, Danke für die Antwort. Sie meinen Tischstrukturen? – Nancy

+0

ja bitte zeig mir die Strukturen. Meine Vermutung ist, dass das Problem mit diesen Informationen leicht zu erkennen sein wird. –

Antwort

1

Ihr Problem wird von Ihrem Insert verursacht, das nur einen Wert für s_phone_mobile angibt, effektiv NULL für die drei Fremdschlüssel angeben, die diese Tabelle enthält.

Eine Fremdschlüsseleinschränkung in MySQL stellt sicher, dass Ihre Einfügung auf Fremdschlüssel verweist, die entweder vorhanden sind, oder möglicherweise NULL zulässig ist, wenn Sie die Schlüssel als NULL-Werte definiert haben. Meine Vermutung ist, dass mindestens eine der folgenden Tasten NULL ist nicht zulässig:

fk_i_user_id 
fk_i_category_id 
fk_c_currency_code 

Also, dieses Problem zu beheben, können Sie auch Fremdschlüsselwerte für die drei oben genannten Schlüssel einsetzen sollte, es sei denn, ein Schlüssel erlauben NULL und Sie sind OK damit. Stellen Sie sicher, dass die angegebenen Werte tatsächlich den Datensätzen in den jeweiligen übergeordneten Tabellen entsprechen.

Verwandte Themen