あるテーブルに重複有無を確認後、重複がなれけばINSERTしたいときの方法。
例えば users_booksテーブルが以下のようにあったとします。
id | user_id | book_id |
---|---|---|
1 | 5 | 10 |
ここで重複の有無を確認して、同じレコードが入っていないときINSERTしたいなら、以下のSQL文でできました。
INSERT INTO users_books(user_id, book_id)
SELECT 5, 10,
WHERE NOT EXISTS (SELECT user_id FROM users_books WHERE user_id = 5 AND book_id = 10)
注意する点として、通常のINSERTなら VALUES
となっているところが、SELECT
になっていること。