我有一個SQL查詢的PHP/MySQL和下面的問題:SQL插入跳過入門
INSERT INTO UserConnected(UID1, UID2) VALUES ('1','2'),('1','3'),('1','4');
所以問題是,如果有UID2的一個用戶在UserAccounts不可用(從UserConnected外鍵UserAccount)整個查詢將會中斷並且根本不會插入任何內容。
因此,讓我們說一些reaseon用戶4已被刪除,並執行此查詢,因爲該ID來自任何其他來源(讓說,Facebook或谷歌)它會嘗試插入,但它不能,因爲用戶不可用。
有沒有辦法說,如果鍵失敗,不要插入並繼續下一個元素,而不做幾個查詢/調用。我寧願在一個查詢中這樣做。
非常感謝!最好的祝福!在最後一個值
嘗試INSERT忽略 – CSK
既然你已經標記這是'除了'MySQL' SQL'我想指出的是,這語法是'MySQL'特定的,並不是標準的'SQL',所以要小心如果你想在未來移植你的數據庫。 – apokryfos
謝謝你的快速回答。 IGNORE非常不幸地不起作用:#1452 - 無法添加或更新子行:外鍵約束失敗(Database.UserConnected,CONSTRAINT UID2_ibfk_2 FOREIGN KEY(UID2)REFERENCES UserAccount(UID)ON DELETE CASCADE ON UPDATE CASCADE)手動刪除不可用用戶的插入值,但查詢將是動態的,我需要一種方法來插入所有可用的用戶帳戶並跳過未知的用戶。 – SomehowLuke