SQL IF 语句不起作用 - 无法识别的语句

SQL IF statement not working - unrecognised statement

我正在尝试建立一个记录搜索词的数据库。对于输入的每个搜索词 SQL 检查搜索词是否存在,如果不存在则插入新记录,如果为真则更新现有字段

IF (NOT EXISTS (SELECT * FROM searchmetrics WHERE keyword = 'keyword'))
BEGIN
    INSERT INTO searchmetrics(id, name, metric)
    VALUES('', 'keyword', '1')
END
ELSE
BEGIN
    UPDATE searchmetrics
    SET metrics = metrics + 1
    WHERE name = 'keyword'
END

我收到以下错误:

Unrecognized statement type. (near "IF" at position 0)

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

我仔细检查了语法,我认为它是正确的,IF 语句在 SQL 控制台中也以红色突出显示,但似乎是唯一的。谁能告诉我哪里出错了?

对于 MariaDB,IFIF() 具有不同的语义。似乎您想在实际使用 IF().

时使用 IF

IF 语句必须在存储例程内。如果不是,则无法运行。

如果是SP,请提供Routine declaration,包括DELIMITER statements。