mysql触发器小实验
时间:2021-07-01 10:21:17
帮助过:8人阅读
use test;
Database changed
mysql> desc time;
+-------+---------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------+---------------------+------+-----+---------+-------+
| id
| bigint(
60) unsigned
| NO
| | 0 | |
+-------+---------------------+------+-----+---------+-------+
1 row
in set (
0.01 sec)
mysql> desc time_2;
+-------+---------------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra
|
+-------+---------------------+------+-----+---------+-------+
| id
| bigint(
60) unsigned
| NO
| | 0 | |
+-------+---------------------+------+-----+---------+-------+
1 row
in set (
0.01 sec)
#创建触发器 当 time表插入一条的时候 time_2表也插入这条新增的数据
mysql> delimiter $$
mysql> create trigger t_afterinsert_on_time
-> after
insert on time
for each row
-> begin
-> insert into time_2(id)
values (new.id);
-> end
-> $$
Query OK, 0 rows affected (
0.14 sec)
mysql> insert into time
values (
100);
-> $$
Query OK, 1 row affected (
0.13 sec)
mysql> select * from time;$$
+-----+
| id
|
+-----+
| 100 |
+-----+
1 row
in set (
0.00 sec)
mysql> select * from time_2;$$
+-----+
| id
|
+-----+
| 100 |
+-----+
1 row
in set (
0.00 sec)
mysql> show triggers;$$
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| Trigger | Event
| Table | Statement
| Timing
| Created
| sql_mode
| Definer
| character_set_client
| collation_connection
| Database Collation
|
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| t_afterinsert_on_time
| INSERT | time
| begin
insert into time_2(id)
values (new.id);
end | AFTER
| NULL | | root
@localhost | gbk
| gbk_chinese_ci
| utf8_general_ci
|
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
1 row
in set (
0.01 sec)
#创建触发器 当 time表删除一条的时候 time_2表也删除这条数据
mysql> create trigger t_afterdelete_on_time
-> after
delete on time
for each row
-> begin
-> delete from time_2
where id
=old.id;
-> end
-> $$
Query OK, 0 rows affected (
0.14 sec)
mysql> show triggers;
-> $$
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| Trigger | Event
| Table | Statement
| Timing
| Created
| sql_mode
| Definer
| character_set_client
| collation_connection
| Database Collation
|
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| t_afterinsert_on_time
| INSERT | time
| begin
insert into time_2(id)
values (new.id);
end | AFTER
| NULL | | root
@localhost | gbk
| gbk_chinese_ci
| utf8_general_ci
|
| t_afterdelete_on_time
| DELETE | time
| begin
delete from time_2
where id
=old.id;
end | AFTER
| NULL | | root
@localhost | gbk
| gbk_chinese_ci
| utf8_general_ci
|
+-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
2 rows
in set (
0.01 sec)
mysql> delete from time
where id
=100;$$
Query OK, 1 row affected (
0.09 sec)
mysql> select * from time;$$
Empty set (
0.00 sec)
mysql> select * from time_2;$$
Empty set (
0.00 sec)
mysql> exit
mysql触发器小实验
标签:for show char nbsp ext ati val triggers 创建