MySQLはifを許可していません プログラミングブロック(ストアドプロシージャ、トリガー、または関数)にいる場合を除き、ロジック。
幸い、WHEREでも同じことができます ロジック:
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はSELECTを処理する必要があります INSERTの前 、したがって、1行だけを挿入する必要があります。
または、2つのINSERTとしてこれを行うことができます sただし、逆の順序:
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');