MySQL erlaubt if
nicht Logik, es sei denn, Sie befinden sich in einem Programmierblock (gespeicherte Prozedur, Trigger oder Funktion).
Glücklicherweise können Sie dasselbe mit WHERE
tun Logik:
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 sollte den SELECT
verarbeiten vor dem INSERT
, also sollte nur eine Zeile eingefügt werden.
Oder Sie können dies als zwei INSERT
tun s, aber in umgekehrter Reihenfolge:
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');