sql触发器

来源:互联网 发布:海意it 编辑:程序博客网 时间:2024/06/06 02:51

要求,建立一个触发器,当触发器发生的时候,在得到的名字后面拼接上一个时间:
引用一张表:
select * from student;

修改前的表的内容+----+----------------+-----+-------+-------+| id | name           | age | class | score |+----+----------------+-----+-------+-------+|  1 | honghong       |  18 |     1 |  NULL ||  2 | 小绿           |  18 |     1 |  NULL ||  3 | 0              |  18 |     1 |  NULL ||  4 | 小粉           |  18 |     1 |  NULL ||  5 | 20170428195451 |  18 |     1 |  NULL ||  6 | 小好           |  18 |     1 |  NULL ||  7 | 大高           |  18 |     1 |  NULL ||  8 | 小geng         |  18 |     1 |  NULL ||  9 | 小蓝           |  18 |     1 |  NULL |+----+----------------+-----+-------+-------+

触发器的编写代码:

drop trigger if exists tri;#如果存在先删除delimiter $$#修改结尾识别符号create trigger tri before update on student for each rowbeginset new.name = concat(new.name,date_format(now(),"%Y-%m-%d %H-%M-%s"));end$$delimiter ;#修改回以;结尾的sql识别符号

运行:
Query OK, 0 rows affected (0.17 sec)

修改表的内容检查触发器是否添加成功

mysql> update student set name = "小红" where id = 1;

Query OK, 1 row affected (0.14 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查看修改后的表的内容

mysql> select * from student;+----+----------------------------+-----+-------+-------+| id | name                       | age | class | score |+----+----------------------------+-----+-------+-------+|  1 | 小红2017-04_29 07-April-43 |  18 |     1 |  NULL ||  2 | 小绿                       |  18 |     1 |  NULL ||  3 | 0                          |  18 |     1 |  NULL ||  4 | 小粉                       |  18 |     1 |  NULL ||  5 | 20170428195451             |  18 |     1 |  NULL ||  6 | 小好                       |  18 |     1 |  NULL ||  7 | 大高                       |  18 |     1 |  NULL ||  8 | 小geng                     |  18 |     1 |  NULL ||  9 | 小蓝                       |  18 |     1 |  NULL |+----+----------------------------+-----+-------+-------+9 rows in set (0.00 sec)

触发器添加成功,基本满足了要求。

2 0
原创粉丝点击