MySQL nepovoluje if
logika, pokud nejste v programovacím bloku (uložená procedura, spouštěč nebo funkce).
Naštěstí můžete udělat totéž pomocí 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 by mělo zpracovat SELECT
před INSERT
, takže by měl být vložen pouze jeden řádek.
Nebo to můžete udělat jako dva INSERT
s, ale v opačném pořadí:
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');