MySQL tidak mengizinkan if
logika, kecuali Anda berada di blok pemrograman (prosedur tersimpan, pemicu, atau fungsi).
Untungnya, Anda dapat melakukan hal yang sama dengan WHERE
logika:
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python')
UNION ALL
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
MySQL harus memproses SELECT
sebelum INSERT
, jadi hanya satu baris yang harus dimasukkan.
Atau, Anda dapat melakukan ini sebagai dua INSERT
s tetapi dalam urutan yang berlawanan:
INSERT INTO user
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');