我正在做一个存储用户最后一次登录/注销的表格。只有一行存储一个 Id,动作作为位字段,时刻作为 DATETIME。我的想法是做一个存储过程,在用户是新用户时进行插入,并在用户存在时进行更新。我已经完成了这段代码:
DELIMITER $$
CREATE PROCEDURE sp_LastAction(in id_in int, accion_in bit)
begin
SELECT @CONT:= IdUsuario FROM login WHERE IdUsuario = id_in;
IF NOT @CONT then
INSERT INTO login(IdUsuario, Fecha, Accion)
values (id_in, NOW(), accion_in);
ELSE
UPDATE login SET Fecha = NOW(), Accion = accion_in
WHERE IdUsuario = id_in LIMIT 1;
end IF;
end$$
DELIMITER ;
但是当我调用该过程时,它什么也不做,只是将变量作为 void 字段返回。