2016-12-15 442 views
1

我试图设置一个记录搜索项的数据库。对于每一个搜索词输入的SQL检查搜索词是否存在,如果不把它插入一个新的记录,如果是真的就更新现有场SQL IF语句不起作用 - 无法识别的语句

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控制台中也突出显示为红色,但似乎是唯一的东西。谁能告诉我我要去哪里?

+2

你错过了''''检查它 – Sami

+0

道歉,这是一个错误粘贴在这里的代码,我已经更新它,并且错误保持不变 – djmcdee

+2

这看起来更像是我的T-SQL(MS SQL Server)语法。 https://mariadb.com/kb/en/mariadb/if-statement/检查IF语法的文档? – Jeremy

回答

1

对于MariaDB,IFIF()具有不同的语义。看起来你想在使用IF()时使用IF

1

IF声明必须位于存储例程中。如果不是这样,它就不能工作。

如果是在SP中,请提供例程声明,包括DELIMITER声明。