我试图在未插入的情况下插入值,否则尝试更新其某些字段。仅使用一个变量。 虽然离子调用存储过程显示插入一行,但值不插入。 请帮助我,第一次尝试SP。
这是我的存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertLocation`(in IpAddress varchar(45))
BEGIN
if (SELECT count(*) as count
FROM mbuzzz.location_byhits
where IpAddress = IpAddress
having count>0)
then
UPDATE location_byhits SET Hits=Hits+1 where IpAddress=IpAddress;
else
insert into location_byhits(IpAddress,Date_current)
values (IpAddress,CURTIME());
End if ;
end
答案 0 :(得分:3)
重命名输入参数,以便在表示参数和列名称时向数据库引擎清除。
where IpAddress = IpAddress
始终为true,因为引擎认为您将列与自身进行比较。
尝试
delimiter |
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertLocation`(in IpAddrParam varchar(45))
BEGIN
if ((SELECT count(*) FROM mbuzzz.location_byhits where IpAddress = IpAddrParam)>0)
then
UPDATE location_byhits SET Hits=Hits+1 where IpAddress=IpAddrParam;
else
insert into location_byhits(IpAddress,Date_current)
values (IpAddrParam, CURTIME());
End if ;
end
|
delimiter ;