MySQL 快速入门学习教程(5)

2.变量的赋值

set currentTime=now();//直接赋值 select XX into currentTime from XX;//也可以通过sql语句进行赋值

3.定义条件和处理

declare handler_type handler for contidtion_value; handler_type: 1.continue; 2.exit; 3.undo; condition_value: 1.sqlstate 2.sqlwarning 3.not found 4.sqlexception eg: declare continue handler for sqlstate '2' set @x=1;

三、光标的使用 在存储过程和函数中,可以使用光标对结果集进行循环处理,光标的使用包含光标的声明: open、fetch、close

定义:

declare cur_id cursor for select * from orders; open cur_id; fetch cur_id; close cur_id;

四、事件调度器 事件调度器是MySQL5.1后面新增的功能,可以将数据库按照自定义时间周期触发某种操作。数据库默认操作是关闭的。需要打开

create event x on schedule every 5 second do insert into orders (memberId,serialNumber,amount) values(6561121,'222',5) set global event_scheduler =1//打开调度器 alter event x disable;//禁用事件调度器 drop event x;//删除事件调度器

十、 触发器

触发器 触发器是在5.02版本后支持的,触发器是与表有关的数据库对象,在满足条件时触发,并执行触发器中定义的语句集合。可以协助应用在数据库端确保数据的完整性

drop trigger orderlog delimiter $ create trigger orderlog after insert on orders for each row begin insert into orderslog (content) values(new.serialNumber); end $ insert into orders (memberId,serialNumber,amount) values(6561121,'sz12234222',5)

解释:上面描述的是创建一个触发器,当往订单表中插入数据之后,在订单日志表插入一条记录。使用old和new来引用触发器发生变化的记录内容,目前只支出行级触发,不支持语句级触发

触发器执行的顺序

before insert\before update\after update

十一、 事务控制和锁定语句

MySQL存储引擎的事务说明

存储引擎说明
InnoDB   支持行级锁定  
MyISAM   支持表级锁定  
Memory   支持表级锁定  
BDB   支持页级锁定  

1.Lock Table与Unlock Table 语法:

use finance; lock table orders read; unlock table;

如果某个进程(session1)lock定了表,那么其他的进程(session2)可以查询,但是不能进行更新操作,直到第一个进程释放了锁

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a171b0777b4d9d211a84b7b6daa89dab.html