diff --git "a/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/13-9.27\350\247\246\345\217\221\345\231\250.Markdown" "b/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/13-9.27\350\247\246\345\217\221\345\231\250.Markdown" new file mode 100644 index 0000000000000000000000000000000000000000..df868f78946d102ff98821f858e6864268fe5e51 --- /dev/null +++ "b/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/13-9.27\350\247\246\345\217\221\345\231\250.Markdown" @@ -0,0 +1,42 @@ +# 触发器的定义 + +触发器( trigger)是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。 +基本概念 + + 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 + + 触发器可以查询其他表,而且可以包含复杂的 SQL语句。 + +## 触发器分类 + +​ 分为 DML触发器和DDL触发器 +DML触发器 : 增删改 +after触发器: + +​ after触发器主要用于:insert,update,delete +instead of 触发器 +### 使用方法 +``` +CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。 +ALTER 语句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。 +DROP 语句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。 +DISK 语句,如:DISK INIT、DISK RESIZE。 +LOAD 语句,如:LOAD DATABASE、LOAD LOG。 +RESTORE 语句,如:RESTORE DATABASE、RESTORE LOG。 +RECONFIGURE  TRUNCATE TABLE 语句在sybase的触发器中不可使用! +``` +## 触发器代码 +```sql +CREATE OR REPLACE TRIGGER trigger_name + + +ON table_name +[FOR EACH ROW] +WHEN (condition) +DECLARE +BEGIN +–触发器代码 +END; +``` + Trigger_name是触发器的名称。可以选择before或者after或instead of。 + Before表示在DML语句实施前执行触发器,而after表示在在dml语句实施之后执行触发器,instead of触发器用在对视图的更新上。 diff --git "a/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/14-9.29\350\247\246\345\217\221\345\231\250.Markdown" "b/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/14-9.29\350\247\246\345\217\221\345\231\250.Markdown" new file mode 100644 index 0000000000000000000000000000000000000000..2b2113d9725efb1c6a4a4500acd9cb324c439a8c --- /dev/null +++ "b/17 \344\276\257\351\224\237\351\223\226/\347\254\224\350\256\260/14-9.29\350\247\246\345\217\221\345\231\250.Markdown" @@ -0,0 +1,7 @@ + + +-- read uncommitted 读未提交 (脏读,不可重复读,幻读) + +-- read commited 读已提交 (不可重复读,幻读) + +-- repeatable read 可重复读 -- serializable \ No newline at end of file