2008-10-20 53 views
1

我試圖在phpMyAdmin運行下面的代碼:IF結構MySql中產生錯誤#1064

set @tagTokenNum=0; 
select @tagTokenNum:=tag_token_id from tag_token where tag_token_name = 'XXX'; 
delimiter go 
if @tagTokenNum is null then 
    insert into tag_token (tag_token_name) values ('XXX'); 
    select @tagTokenNum:=last_insert_id(); 
end if; 
go 

我也試過這種沒有分隔符聲明和相應的去。我收到錯誤消息「#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在附近使用正確的語法'if @tagTokenNum爲null,然後插入tag_token ...」

據我所知,我遵循適當的語法在MySql中的IF語句。我對Microsoft SQL更熟悉,所以完全有可能我做錯了什麼。我會很感激你可以提供的任何幫助。謝謝。 - Dave

回答

2

ISTR,你只能在存儲過程中使用if語句,ref:mysql docs ...An IF ... END IF block, like all other flow-control blocks used within stored programs...

不過,我認爲你可以達到同樣的有以下:

insert into tag_token (tag_token_name) values ('XXX') 
    ON DUPLICATE KEY UPDATE tag_token_name = tag_token_name; 

select @tagTokenNum:=tag_token_id from tag_token where tag_token_name = 'XXX' 
+0

我沒有驗證的解決辦法,但他絕對是正確的IF語句... – davearchie 2008-10-22 01:03:40