要求,建立一个触发器,当触发器发生的时候,在得到的名字后面拼接上一个时间:
引用一张表:
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 row
begin
set 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)
触发器添加成功,基本满足了要求。