我有以下SQL語句SQL INSERT當兩個SELECT查詢返回一個非空值
INSERT INTO combats (combat_killer, combat_victim, combat_weapon, combat_time, combat_server)
VALUES(
(SELECT player_id FROM players WHERE player_username = 'Kvazos'),
(SELECT player_id FROM players WHERE player_username = 'paulaagee'),
'Diamond Sword',
CURRENT_TIMESTAMP,
1
);
這將基本上得到的另外兩個記錄的ID,並將其插入到表中。但是,可能存在發送的player_username不存在並且SELECT將返回NULL的情況。 如果兩個SELECT中的一個返回NULL,我該如何防止執行此INSERT?
@BenjaminGruenbaum粗體的最後一句指定OP要阻止執行插入。 –
如果查詢失敗,查詢就會給我一個例外。但是這裏的重點不是必須要拋出異常,而是如果不需要插入就簡單地標記爲查詢成功。 @ Jean-FrançoisSavard解決了這個問題。多謝你們! –