我試圖創建一個新的表關係,但我似乎得到了一個錯誤,我不知道爲什麼。我做的第一個關係(一對多)是上週的,它工作的很好,也許我從那以後忘了正確的程序?創建關係:#1452 - 無法添加或更新子行:外鍵約束失敗
簡單的解釋: 我有三個表 - 事件,music_styles,場館
到目前爲止,我正確鏈接事件和場館的方式,一個場所可以鏈接到它的多個事件。我嘗試製作一張新表,每張音樂風格都有一行,並在表'事件'中使用一個ID,這樣我就可以將每個事件鏈接到音樂風格ID。
然而,這是我得到的錯誤:
SQL查詢:
ALTER TABLE
events
添加外鍵(MUSIC_STYLE_ID
)參考文獻nightl7_complete
。music_styles
(MUSIC_ID
)ON DELETE NO ACTION ON UPDATE NO ACTION;MySQL表示:文件
1452 - 不能添加或更新子行:外鍵約束
失敗(
nightl7_complete/#sql-2721_c0dcfd
,約束#sql-2721_c0dcfd_ibfk_2
外鍵(MUSIC_STYLE_ID
)參考文獻music_styles
(MUSIC_ID
)ON DELETE沒有行動更新沒有行動) 文檔錯誤ALTER TABLEevents
ADD FOREIGN KEY(MUSIC_STYLE_ID
)參考文獻nightl7_complete
。music_styles
(MUSIC_ID
)ON DELETE NO ACTION ON UPDATE NO ACTION;
這是我做了:)
I uploaded a full sized image here
謝謝大家:)程序
編輯:
所以我這樣做:
$query = 'SELECT e.* FROM events e '.
'LEFT JOIN nightl7_complete.music_styles ms ON ms.ID = e.MUSIC_STYLE_ID'.
'WHERE ms.id IS NULL';
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
,並得到這個:
查詢無效:您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊在行「ms.id IS NULL」 1
喜道格相應的記錄,我做了預填充music_styles表有68排。我按照你的建議使用ID,我仍然有同樣的錯誤。 #1452 - 無法添加或更新子行:外鍵約束失敗('nightl7_complete /#sql-2721_c1caae',CONSTRAINT'#sql-2721_c1caae_ibfk_2' FOREIGN KEY('MUSIC_STYLE_ID')REFERENCES'music_styles'('ID')ON DELETE NO ACTION ON UPDATE NO ACTION) – pufAmuf
因此,對於'events'中的每一行,'MUSIC_STYLE_ID'中的值在'music_styles.id'中可用?我會修改我的問題,並用建議的查詢來檢查這個... –
我刪除了列MUSIC_STYLE_ID,並且由於music_styles.ID已經編入索引,我以爲我可以將它用作外鍵? – pufAmuf