SQL IF语句不工作-无法识别的语句
我正试图建立一个记录搜索词的数据库。对于输入的每个搜索项,SQL检查搜索项是否存在,如果不存在,则插入新记录,如果为true,则更新现有字段SQL IF语句不工作-无法识别的语句,sql,database,mariadb,Sql,Database,Mariadb,我正试图建立一个记录搜索词的数据库。对于输入的每个搜索项,SQL检查搜索项是否存在,如果不存在,则插入新记录,如果为true,则更新现有字段 IF (NOT EXISTS (SELECT * FROM searchmetrics WHERE keyword = 'keyword')) BEGIN INSERT INTO searchmetrics(id, name, metric) VALUES('', 'keyword', '1') END ELSE BEGIN UPD
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
我发现以下错误:
无法识别的语句类型。(位置0的“如果”附近)
1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以获取第1行“”附近要使用的正确语法
我仔细检查了语法,在我看来它是正确的,IF语句在SQL控制台中也以红色突出显示,但似乎是唯一正确的。有人能告诉我哪里出了问题吗?对于MariaDB,
IF
和IF()
有不同的语义。当您实际使用IF()
时,似乎想要使用IF
,IF
语句必须位于存储的例程中。如果没有,它就无法发挥作用
如果它在SP中,请提供例程声明,包括
分隔符
语句。您错过了)
检查it策略粘贴代码时出错,我已对其进行了更新,错误保持不变。在我看来,这更像是T-SQL(MS SQL Server)语法。检查文档中是否有语法?是否正在尝试编写存储过程?列“id”是否为标识列?如果是,则无法在标识列中插入任何内容,因为这是系统生成的密钥。