MySQL non consente if
logica, a meno che non ci si trovi in un blocco di programmazione (procedura memorizzata, trigger o funzione).
Fortunatamente, puoi fare lo stesso con WHERE
logica:
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 dovrebbe elaborare SELECT
prima del INSERT
, quindi dovrebbe essere inserita solo una riga.
Oppure puoi farlo come due INSERT
s ma nell'ordine opposto:
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');