我真的不明白为什么我的说法:
IF EXISTS (SELECT * FROM people WHERE ID = 168)
THEN SELECT * FROM people
END IF;
正在返回此错误:
Unknown statement type. (near "IF EXISTS" at position 0)
我正在使用 MariaDB 10.3。有任何想法吗?
附加信息
这当然是一个简化的例子。我想做的是,具体来说:
IF EXISTS (SELECT * FROM people WHERE ID = 168)
THEN UPDATE people SET calculated_value = complex_queries_and_calculations
WHERE ID = 168
..,因此如果该记录包含给定数据,则更新给定记录的字段,否则什么也不做。要生成将用于更新的数据,我需要查询其他表的值并进行一些计算。如果实际上没有什么可更新的,我想避免这些查询+计算。在这种情况下,什么也不做。因此,我猜想在语句的子句中EXIST
放置一个WHERE
子句UPDATE
会导致许多查询和计算都是徒劳的。