mysql存储过程编写实例

1、存储过程例子:

BEGIN
DECLARE maxId int default 0;
DECLARE minId int default 0;
START TRANSACTION;
SET @time=UNIX_TIMESTAMP(NOW());
select max(id) into maxId from visitor_info_sum as a where a.city='-' and a.id_numb='-' ;
select min(id) into minId from visitor_info_sum as a where a.city='-' and a.id_numb='-' ;
insert into adp_web_visitor_info() select.....
delete from visitor_info_sum where id >= minId and id <= maxId ;
TRUNCATE table web_url_black_sum;
COMMIT;
END

 2、变量的定义:declare,set  

 3、start transaction: 开启事务,然后commit 一并提交

       在默认的情况下,MySQL从自动提交(autocommit)模式运行,这种模式会在每条语句执行完毕后把它作出的修改立刻提交给数据库并使之永久化。事实上,这相当于把每一条语句都隐含地当做一个事务来执行。如果你想明确地执行事务,需要禁用自动提交模式并告诉MySQL你想让它在何时提交或回滚有关的修改。执行事务的常用办法是发出一条START TRANSACTION(或BEGIN)语句挂起自动提交模式,然后执行构成本次事务的各条语句,最后用一条 COMMIT语句结束事务并把它们作出的修改永久性地记入数据库。万一在事务过程中发生错误,用一条ROLLBACK语句撤销事务并把数据库恢复到事务开 始之前的状态。

      START TRANSACTION语句"挂起"自动提交模式的含义是:在事务被提交或回滚之后,该模式将恢复到开始本次事务的 START TRANSACTION语句被执行之前的状态。(如果自动提交模式原来是激活的,结束事务将让你回到自动提交模式;如果它原来是禁用的,结束 当前事务将开始下一个事务。)如果是autocommit模式  ,autocommit的值应该为 1 ,不autocommit 的值是 0 ;请在试验前 确定autocommit 的模式是否开启 

 4、mysql当前时间戳;UNIX_TIMESTAMP(NOW())

 5、truncate table table_name : 清空表

 6、注意两个select语句中 into用法



猜你喜欢

转载自blog.csdn.net/yuanyuan214365/article/details/79218479
今日推荐