Gebruik insert . . . select :
INSERT INTO USER (name, email)
SELECT 'John', 'example@sqldat.com'
WHERE NOT EXISTS
(SELECT id FROM USER WHERE email = 'example@sqldat.com');
Ik zou dit schrijven als:
INSERT INTO USER (name, email)
SELECT name, email
FROM (SELECT 'John' as name, 'example@sqldat.com' as email) t
WHERE NOT EXISTS (SELECT 1 FROM USER u WHERE u.email = t.email);
Maar een betere benadering is waarschijnlijk om gewoon een unieke index in te voeren, zodat de database de gegevens beschermt:
create unique index idx_users_email on user(email);