MySQL nie zezwala na if
logiki, chyba że znajdujesz się w bloku programowania (procedura składowana, wyzwalacz lub funkcja).
Na szczęście możesz zrobić to samo z 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 powinien przetworzyć SELECT
przed INSERT
, więc należy wstawić tylko jeden wiersz.
Lub możesz to zrobić jako dwa INSERT
s ale w odwrotnej kolejności:
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');