私はSQL PHP/MySQLのクエリと、以下のような問題があります。SQL挿入スキップエントリ
INSERT INTO UserConnected(UID1, UID2) VALUES ('1','2'),('1','3'),('1','4');
が問題である、という(UserAccountsでUID2の1人のユーザーは利用できませんUserConnectedからの外部キーに存在する場合UserAccount)、クエリ全体が破損し、何も挿入されません。
ユーザー4はすでに削除されていますが、このクエリは他のソースから来ているため(つまり、facebookやgoogleなど)、ユーザーが利用できないために挿入しようとします。
キーが失敗した場合、いくつかのクエリー/コールを行わずに、次の要素を挿入して続行しないでください。私は1つのクエリでそれを行うことを好むだろう。
ありがとうございました!宜しくお願いします!
トライINSERTが – CSK
をIGNORE設定構文は 'MySQL'特有であり、標準的な' SQL'ではありませんので、将来あなたのデータベースを移植したいのであれば注意してください。 – apokryfos
迅速な回答ありがとうございます。 IGNORE Unfortuately does not work:#1452 - 子行を追加または更新できません:外部キー制約が失敗しました(Database.UserConnected、CONSTRAINT UID2_ibfk_2 FOREIGN KEY(UID2)REFERENCES UserAccount(UID)ON CASCADE ON DELETE CASCADE)利用できないユーザーの挿入値を手動で削除しますが、クエリは動的になります。利用可能なすべてのユーザーアカウントを挿入して未知の行をスキップする方法が必要です。 – SomehowLuke