我试图在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_token ......”< / p>
据我所知,我在MySql中遵循IF语句的正确语法。我对Microsoft SQL更熟悉,所以我完全有可能做错了。我很感激您提供的任何帮助。谢谢。 - 戴夫
答案 0 :(得分:2)
ISTR你只能在存储过程中使用if语句,参考: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'