MySql中的IF构造产生错误#1064

MySql中的IF构造产生错误#1064,mysql,Mysql,我正在尝试在phpMyAdmin中运行以下代码: 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:=l

我正在尝试在phpMyAdmin中运行以下代码:

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
我也尝试过在没有分隔符语句和相应go的情况下执行此操作。我收到错误消息“#1064-您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解附近使用的正确语法‘如果@tagTokenNum为null,则插入到tag_令牌中…”

据我所知,我在MySql中遵循IF语句的正确语法。我对Microsoft SQL更为熟悉,因此完全有可能我做错了什么。如果你能提供帮助,我将不胜感激。谢谢
-Dave

是存储过程中只能使用if语句的ISTR,参考:mysql文档

但是,我认为您可以通过以下方式实现同样的目标:

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'

我还没有验证解决方法,但他在IF语句上肯定是正确的。。。