触发器总格式
create trigger 触发器的名字 before/after insert/update/delete on 表名
from each row
begin
sql 语句
end
具体使用 针对触发器的名字 我们通常见名知意
触发器针对增
create trigger 触发器的名字 before/after insert/update/delete on 表名
from each row
begin
sql 语句
end
#在插入之前
create trigger tri_before_insert_t1 before insert on t1
from each row
begin
sql 语句
end
#在插入之后
create trigger tri_after_insert_t1 after insert on t1
from each row
begin
sql 语句
end
ps: 修改mysql默认的语句结束符 只作用于当前窗口
delimit && 将默认的结束符号;改称为&&
#触发器完整语法
delimiter $$
create trigger tri_before_insert_t1 before insert on t1
from each row
begin
sql 语句
end $$
delimiter
#删除触发器
drop trigger 触发器名字;
事务 ACID 原子型 一致型 隔离性 持久性
事务:
如何使用事务
1、开启事务
start transaction;
2、回滚(回到事务执行之前的状态)
rollback;
3、确认(确定之后无法回滚)
commit;
使用:
start transaction;开启事务
sql语句 跟上sql语句
存储过程
存储过程
基本使用
create procedure 存储过程的名字()
begin
sql代码
end
#调用
call 存储过程的名字();
样例:
delimiter $$
create procedure p1(
in m int,#只进不出 m不能返回出去
in n int,
out res int #该形参可以返回出去
)
begin
select tname from teacher where tid > m and tid < n;
set res = 666;#将res变量修改 用来标识当前的村粗过程代码确实执行了
end $$
delimiter ;
set @res = 10 定义变量
select @res; 查询变量
流程控制
while 循环
delimiter //
create procedure 存储过程的名字()
begin
declare i int default 0;
if i = 1 then
select 1;
elseif = 2 then
select 2;
else
select 3;
end if
end //
delimiter ;