2016-12-15 87 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聲明。