mysql 函数延时_mysql定义异常/表不存在异常/延时函数/now()-sysdate()

delimiter $$

drop procedure if exists lims_data.sp_test_100$$

create procedure lims_data.sp_test_100(

outcur_time1bigint unsigned,

outcur_time2bigint unsigned,

out cntint unsigned

)

begin

declare _sleepint unsigned default 0;

declare continue handler for 1146

begin

end;

select now() + 0 into cur_time1;

select count(*) into cnt from lims_data.abscafase;

while cur_time1 + 5 >= (now() + 0) do

set _sleep = SLEEP(1);

end while;

select now() + 0 into cur_time2;

end $$

delimiter ;

call lims_data.sp_test_100(@a, @b, @c);

select @a, @b, @c;

select sysdate(), now(), sleep(1), now(), sysdate();

总结:

1:异常可以由多种值来触发

DECLARE handler_action HANDLER

FOR condition_value [, condition_value] ...

statement

handler_action:

CONTINUE

| EXIT

| UNDO

condition_value:

mysql_error_code

| SQLSTATE [VALUE] sqlstate_value

| condition_name

| SQLWARNING

| NOT FOUND

| SQLEXCEPTION

2:可以定义多个continue handler 但是 对于一个触发条件只能定义一个handler

3:set _sleep = SLEEP(1); 延时函数 以前用的比较少 要它时还真不能少

4:now()和sysdate()都是显示当前时间

区别:now()显示执行开始的时间

sysdate()显示当前执行时间

eg:  如果一个sql块执行需要10s   now()显示的是10s前的时刻 而sysdate()显示的是当前时刻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值