我正在尝试在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更为熟悉,因此完全有可能我做错了什么。如果你能提供帮助,我将不胜感激。谢谢 -戴夫
在存储过程中只能使用if语句的ISTR,参考: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'