【发布时间】:2021-02-26 09:21:37
【问题描述】:
我真的不明白为什么我的说法:
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 子句放在UPDATEstatement 的WHERE 子句中会导致许多查询和计算徒劳无功。
【问题讨论】:
标签: sql mariadb mariadb-10.3