触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。
CREATE TRIGGER trigger_name
trigger_time trigger_event ON tb_name 什么情况下触发程序的执行
FOR EACH ROW 行级触发/语句级触发
trigger_stmt
- trigger_name:触发器的名称
- tirgger_time:触发时机,为 BEFORE 或者 AFTER
- trigger_event:触发事件,为 INSERT、DELETE 或者 UPDATE
- tb_name:表示建立触发器的表明,就是在哪张表上建立触发器
- trigger_stmt:触发器的程序体,可以是一条 SQL 语句或者是用 BEGIN 和 END 包含的多条语句。
MySQL 可以创建以下六种触发器:BEFORE INSERT、BEFORE DELETE、BEFORE UPDATE、AFTERINSERT、AFTER DELETE、AFTER UPDATE。
date 类型赋默认值
定义触发器
delimiter //
create trigger tri_emp_hiredate
before insert on emp
for each row
begin
IF NEW.hiredate IS NULL THEN 使用触发器时有2个临时表,一个new用于记录需要进入表的数据,一个old用于记录离开表的数据。含义是判断 new 表中的hiredate列是否为空
SET NEW.hiredate = CURRENT_DATE; 修改hiredate列值为当前日期date类型
END IF;
end // 提交触发器