Ваш код имеет выражение CASE
, а не выражение CASE
.
Я бы посоветовал вам просто использовать IF
, но вы можете настроить свой код с помощью END CASE
:
begin
declare last_insert_time datetime;
declare new_insert_time datetime;
set @last_insert_time = (select insert_time from whatstore order by id desc limit 1);
select datediff(new.insert_time, @last_inserted_time) into new_insert_time;
case when last_insert_time - new.insert_time > 1
then insert into `delete`.table3 (time_diff)
values (new_inserted_time);
end case;
end;
Кажется, проще написать это без условной логики c:
insert into `delete`.table3 (time_diff)
select w.last_insert_time
from (select insert_time
from whatstore
order by id desc
limit 1
) w
where w.last_insert_time > new.insert_time;