INSERT
các câu lệnh hỗ trợ hai cú pháp:một cú pháp sử dụng VALUES
và một sử dụng truy vấn.
Bạn không thể kết hợp chúng và chỉ cú pháp truy vấn mới hỗ trợ WHERE
điều khoản. Vì vậy:
INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- Thực tế là ba các cú pháp; bạn cũng có thể sử dụng
SET
. Nếu bạn chỉ chèn một bản ghi, bản ghi này có chức năng tương đương vớiVALUES
, nhưng được cho là dễ đọc hơn.