MySQL staat if . niet toe logica, tenzij u zich in een programmeerblok bevindt (opgeslagen procedure, trigger of functie).
Gelukkig kun je hetzelfde doen met 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 zou de SELECT . moeten verwerken voor de INSERT , dus er mag maar één rij worden ingevoegd.
Of u kunt dit doen als twee INSERT s maar in omgekeerde volgorde:
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');