1,触发器是由MYSQL的基本命令事件来触发某种特定操作,
- mysql> create trigger autolog before insert
- -> on user for each row
- -> insert into logtime values(null,now());
- -> //
- Query OK, 0 rows affected (0.12 sec)
- mysql> insert into user values(null,'123','123',now())//
- Query OK, 1 row affected (0.06 sec)
- mysql> select * from logtime;
- -> //
- +----+---------------------+
- | id | savetime |
- +----+---------------------+
- | 1 | 2012-11-05 18:35:02 |
- +----+---------------------+
- 1 row in set (0.00 sec)
创建触发器用的关键字是 trigger autolog是触发器的名字 before insert 是在插入数据动作之前执行触发器before可以换成after,表明在之后执行动作 on user 表明触发器监听表格 each row 就是监听user表的每一列 user表格如果发生插入操纵的话,就会执行相应的动作 下面的一个SQL语句表明要执行的动作 第二个SQL语句是往user表里插入数据,然后查询logtime表,自动加入了一条记录
- mysql> show triggers
- -> //
- +---------+--------+-------+----------------------------------------+--------+---------+------------
- ----------------------------------------------------+----------------+----------------------+-------
- ---------------+--------------------+
- | Trigger | Event | Table | Statement | Timing | Created | sql_mode
- | Definer | character_set_client | collat
- ion_connection | Database Collation |
- +---------+--------+-------+----------------------------------------+--------+---------+------------
- ----------------------------------------------------+----------------+----------------------+-------
- ---------------+--------------------+
- | autolog | INSERT | user | insert into logtime values(null,now()) | BEFORE | NULL | STRICT_TRAN
- S_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | root@localhost | utf8 | utf8_g
- eneral_ci | utf8_general_ci |
- +---------+--------+-------+----------------------------------------+--------+---------+------------
- ----------------------------------------------------+----------------+----------------------+-------
- ---------------+--------------------+
- 1 row in set (0.01 sec)
- mysql> drop trigger autolog//
- Query OK, 0 rows affected (0.01 sec)
还没有人抢沙发呢~