MySQL n'autorise pas if
logique, sauf si vous êtes dans un bloc de programmation (procédure stockée, déclencheur ou fonction).
Heureusement, vous pouvez faire la même chose avec WHERE
logique :
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 devrait traiter le SELECT
avant le INSERT
, donc une seule ligne doit être insérée.
Ou, vous pouvez le faire en deux INSERT
s mais dans l'ordre inverse :
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');