MySQL não permite
if
lógica, a menos que você esteja em um bloco de programação (procedimento armazenado, gatilho ou função). Felizmente, você pode fazer o mesmo com
WHERE
lógica: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 deve processar o
SELECT
antes do INSERT
, portanto, apenas uma linha deve ser inserida. Ou você pode fazer isso como dois
INSERT
s, mas na ordem oposta: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');