事物处理 自动提交机制 触发器

Posted on Posted in php
Tips: 本文创建于2014年4月28日,已超过 2 年,内容或图片可能已经失效!

目录

事物处理

start transaction;
如果在执行过程中出现问题,使用rollback回退到初始状态
rollback;
commit;
注意:
开启事务后,运行的SQL有些类型是回滚不了的,比如create
安全事务操作的记录,数据库会进行锁定,行锁定。
支持事务处理的引擎是innodb

自动提交机制

show variables like 'autocommit';
set autocommit=0; //关闭自动提交
当设置autocommit=0后,使用commit或rollback包括start transaction,都会结束一个事务,同时又开始一个新的事务。
只有你把autocommit=1后,才真正的终止了你事务状态。
变量autocommit只影响当前客户端。

触发器

格式:create trigger 触发器名 事件时机 事件行为 on 表名 for each row SQL语句段
NEW:新记录,操作之后的记录
OLD:旧记录,操作之前的记录

Insert:只有new,没有old
Update:有old,也有new
Delete:有old,没有new

#建立一个日志表,用于记录学生信息表变动情况
create table log_students (
id int unsigned auto_increment primary key,
action varchar(20),
actbf varchar(20),
acttime datetime,
stuid int
);
创建触发器
create trigger log_stud after update on each row
insert into log_students values(null,'after','update',now(),old.id);
查看触发器
show trigger from 库名;
显示触发器创建信息
show create trigger 触发器\G
运行触发器
update students set score=450 where id=7;
删除触发器
drop trigger log_stud;

One thought on “事物处理 自动提交机制 触发器

Leave a Reply

Your email address will not be published. Required fields are marked *

five + 5 =