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');