您的位置:首页 > 数据库 > MySQL

mySQL之视图、触发器、事务、存储过程、函数、流程控制

2017-09-18 17:26 946 查看

视图

create view class_view as select * from class;

drop view class_view;

alter view class_view as select * from class where id>3;

select * from class_view

单表的视图数据可以修改,多表联查的视图数据可以修改其中一个表的数据。





不能同时改两张表数据!!!

修改视图表结构是不被允许的,因为表结构在第一次创建时已经确定,并且存在于硬盘。

触发器

创建触发器

delimiter //

create trigger tri_after_insert_cmd after insert on cmd for each row

begin

if new.success=’no’ then

insert into errlog(err_cmd,err_time) values(new.cmd,new.sub_time)

end if;

end//

delimiter ;

new:代表新插入的一条记录,old:代表已经存在的记录

删除触发器

drop trigger tri_after_insert_cmd;

没有查,被动触发

事务

原子性操作

所有的SQL语句执行为一个整体,要么都成功,要么都失败。

start transaction:

select * from class;

insertt into teacher(name) values(‘Tiger’)

rollback;

存储过程

delimiter //

create procedure proc()

begin

select * from class;

insert into teacher(name) values(‘Bob’);

end//

dlimiter ;

在mysql中调用

call proc();

在pymysql中调用

cursor.callproc(‘proc’)

print(cursor.fetchall())

删除procedure

函数

date_format

How to use it?博客分类!

参数查询:

外文链接

中文链接

流程控制

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息