今天实验了一下mysql的触发器

  1. mysql> use test;
  2. Database changed
  3. mysql> desc time;
  4. +-------+---------------------+------+-----+---------+-------+
  5. | Field | Type | Null | Key | Default | Extra |
  6. +-------+---------------------+------+-----+---------+-------+
  7. | id | bigint(60) unsigned | NO | | 0 | |
  8. +-------+---------------------+------+-----+---------+-------+
  9. 1 row in set (0.01 sec)
  10. mysql> desc time_2;
  11. +-------+---------------------+------+-----+---------+-------+
  12. | Field | Type | Null | Key | Default | Extra |
  13. +-------+---------------------+------+-----+---------+-------+
  14. | id | bigint(60) unsigned | NO | | 0 | |
  15. +-------+---------------------+------+-----+---------+-------+
  16. 1 row in set (0.01 sec)
  17. #创建触发器 当 time表插入一条的时候 time_2表也插入这条新增的数据
  18. mysql> delimiter $$
  19. mysql> create trigger t_afterinsert_on_time
  20. -> after insert on time for each row
  21. -> begin
  22. -> insert into time_2(id) values (new.id);
  23. -> end
  24. -> $$
  25. Query OK, 0 rows affected (0.14 sec)
  26. mysql> insert into time values (100);
  27. -> $$
  28. Query OK, 1 row affected (0.13 sec)
  29. mysql> select * from time;$$
  30. +-----+
  31. | id |
  32. +-----+
  33. | 100 |
  34. +-----+
  35. 1 row in set (0.00 sec)
  36. mysql> select * from time_2;$$
  37. +-----+
  38. | id |
  39. +-----+
  40. | 100 |
  41. +-----+
  42. 1 row in set (0.00 sec)
  43. mysql> show triggers;$$
  44. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  45. | Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
  46. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  47. | t_afterinsert_on_time | INSERT | time | begin
  48. insert into time_2(id) values (new.id);
  49. end | AFTER | NULL | | root@localhost | gbk | gbk_chinese_ci | utf8_general_ci |
  50. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  51. 1 row in set (0.01 sec)
  52. #创建触发器 当 time表删除一条的时候 time_2表也删除这条数据
  53. mysql> create trigger t_afterdelete_on_time
  54. -> after delete on time for each row
  55. -> begin
  56. -> delete from time_2 where id=old.id;
  57. -> end
  58. -> $$
  59. Query OK, 0 rows affected (0.14 sec)
  60. mysql> show triggers;
  61. -> $$
  62. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  63. | Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
  64. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  65. | t_afterinsert_on_time | INSERT | time | begin
  66. insert into time_2(id) values (new.id);
  67. end | AFTER | NULL | | root@localhost | gbk | gbk_chinese_ci | utf8_general_ci |
  68. | t_afterdelete_on_time | DELETE | time | begin
  69. delete from time_2 where id=old.id;
  70. end | AFTER | NULL | | root@localhost | gbk | gbk_chinese_ci | utf8_general_ci |
  71. +-----------------------+--------+-------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  72. 2 rows in set (0.01 sec)
  73. mysql> delete from time where id=100;$$
  74. Query OK, 1 row affected (0.09 sec)
  75. mysql> select * from time;$$
  76. Empty set (0.00 sec)
  77. mysql> select * from time_2;$$
  78. Empty set (0.00 sec)
  79. mysql> exit

 

版权声明:本文为lizhaoyao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lizhaoyao/p/6763433.html