MySql中的IF构造产生错误#1064
我正在尝试在phpMyAdmin中运行以下代码: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
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语句上肯定是正确的。。。