Sử dụng chèn insert . . . select
:
INSERT INTO USER (name, email)
SELECT 'John', '[email protected]'
WHERE NOT EXISTS
(SELECT id FROM USER WHERE email = '[email protected]');
Tôi sẽ viết cái này là:
INSERT INTO USER (name, email)
SELECT name, email
FROM (SELECT 'John' as name, '[email protected]' as email) t
WHERE NOT EXISTS (SELECT 1 FROM USER u WHERE u.email = t.email);
Nhưng một cách tiếp cận tốt hơn có lẽ là chỉ đặt một chỉ mục duy nhất để cơ sở dữ liệu bảo vệ dữ liệu:
create unique index idx_users_email on user(email);