1.觸發器:對某個表進行(增/刪/改)操作的前后如果希望觸發某個特定的行為時,可以使用觸發器,觸發器用於定制用戶對表的行進行(增/刪/改)前后的行為
-- 觸發器
-- delimiter $$
-- create trigger tr_star before insert on student for each row
-- begin
-- insert into class(caption) values('肚脹');
-- end $$
-- delimiter ;
-- insert into student(gender,class_id,sname) values('女',4,'沙比')
2.事務
innodb引擎支持
事務用於將某些操作的多個SQL作為原子性操作,
一旦有某一個出現錯誤,即可回滾到原來的狀態,從而保證數據庫的數據完整性
delimiter \\
create procedure p1(
out return_code tinyint
)
begin
declare exit handler for sqlexception
begin
--錯誤
set return_code=1;
rollback;
end;
declare exit handler for sqlwarning
begin
--警告
set return_code=2;
rollback;
end;
start transaction;
delete from tb1;
insert into tb2(name) values('star');
commit;
--成功
set return_code=0;
end \\
delimiter ;