0
注時:這本書的ID是它的標題奇怪違反外鍵約束在子表中,如果從父表中選擇
insert ignore into category_book
select 1 as user_id, 'name' as category_name, b.id as book_id
from book b
where b.id regexp('word') AND b.id IS NOT NULL
我得到:
MySQL錯誤1452:不能添加或更新子行:外鍵約束失敗(
book
category_book
,約束fk_category_book_book1
外鍵(book_id
)參考文獻book
(id
)ON DELETE CASCADE ON UPDATE CASCADE)
「category_book」的定義是什麼?你的列是否按正確的順序?它始終是一個明確列出要插入的列的好主意,它將在未來驗證您的代碼以防止任何模式更改,以及使讀取代碼的人立即明白插入到哪裏的內容。 – GarethD
您是否_sure_'category_book'的字段爲'user_id,category_name,book_id' _in order_?在select中命名它們很少,你可能想指定INSERT INTO category_book(user_id,category_name,book_id)SELECT ...' – Wrikken
我們修正了這個問題,這是我們在select語句中的列順序錯了,它應該是book_id,category_name,user_id。 @Wrikken感謝您指出它 – edward