2013-07-24 18 views
-3

我在遇到以下插入查詢時遇到問題。INSERT INTO ...在同一個表中選擇將生成外鍵錯誤

INSERT INTO CM_LABEL_CALENDAR (
    label_id, 
    label_name, 
    order_seq, 
    meal_id, 
    hyperlink 
) 
SELECT 
    label_id, 
    label_name, 
    order_seq, 
    (meal_id + 315), 
    hyperlink 
FROM 
    CM_LABEL_CALENDAR 
WHERE 
    (meal_id BETWEEN '1466' AND '1521'); 

當我試圖執行它,我收到以下錯誤:

Lookup Error - MySQL Database Error: Cannot add or update a child row: a foreign key constraint fails (TEST_PBMS . CM_LABEL_CALENDAR , CONSTRAINT CM_LABEL_CALENDAR_ibfk_1 FOREIGN KEY (meal_id) REFERENCES CM_MEAL_CALENDAR (meal_id))

我試圖尋找一個答案,但沒能找到。

+0

您應該瞭解外鍵。然後你明白這個問題,並且爲將來的SQL使用提供更好的裝備。 –

+2

錯誤表示您有外鍵問題。在這種情況下,您正在插入的其中一個meal_id在CM_MEAL_CALENDAR表中不存在,並且正在對它進行調整。 – Becuzz

+0

從同一張表中做'insert into .. select ..'通常也是一個非啓動器。 – ethrbunny

回答

0

CM_LABEL_CALENDAR(meal_id)CM_MEAL_CALENDAR(meal_id)

之間,因爲你試圖插入在meal_id列不要在CM_MEAL_CALENDAR表中存在值您收到此錯誤外鍵約束。