【mysql】-创建存储和触发器

显示test1表数据

mysql> select * from test1;
Empty set (0.00 sec)

创建存储

mysql>  \d//
mysql> create procedure p2()
    -> begin
    -> set @i=3;
    -> while @i<=100 do
    -> insert into test1(name) values(concat("user",@i));
    -> set @i=@i+1;
    -> end while;
    -> end//
Query OK, 0 rows affected (0.10 sec)

显示存储状态

mysql> show procedure status \G
*************************** 1. row *********************
                  Db: t_user
                Name: p2
                Type: PROCEDURE
             Definer: root@localhost
            Modified: 2017-03-24 20:21:33
             Created: 2017-03-24 20:21:33
       Security_type: DEFINER
             Comment:
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
*************************** 2. row *********************
                  Db: user
                Name: p2
                Type: PROCEDURE
             Definer: root@localhost
            Modified: 2017-03-29 20:51:34
             Created: 2017-03-29 20:51:34
       Security_type: DEFINER
             Comment:
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
2 rows in set (0.01 sec)

唤醒存储

mysql> call p2;
Query OK, 0 rows affected (0.01 sec)

显示test1执行存储的结果

mysql> select * from test1;
+----+---------+
| id | name    |
+----+---------+
|  1 | user3   |
|  2 | user4   |
|  3 | user5   |
|  4 | user6   |
|  5 | user7   |
|  6 | user8   |
|  7 | user9   |
|  8 | user10  |
|  9 | user11  |
| 10 | user12  |
| 11 | user13  |
| 12 | user14  |
| 13 | user15  |
| 14 | user16  |
| 15 | user17  |
| 16 | user18  |
| 17 | user19  |
| 18 | user20  |
·····································································································

插入触发器

mysql> \d//
mysql> create trigger test1 before insert on test1 for each row
    -> begin
    -> insert into test2(name) values(new,name);
    -> end//
Query OK, 0 rows affected (0.19 sec)

显示触发器

mysql> show triggers\G
*************************** 1. row ***************************
             Trigger: test1
               Event: INSERT
               Table: test1
           Statement: begin
insert into test2(name) values(new,name);
end
              Timing: BEFORE
             Created: NULL
            sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.01 sec)

更新触发器

mysql> create trigger test3 before update on test1 for  each row
    -> begin
    -> update test3 set name=new.name where name=old.name;
    -> end//
Query OK, 0 rows affected (0.11 sec)

删除触发器

mysql> create trigger test2 before delete on test1 for each row
    -> begin
    -> delete from test2 where id=old.id;
    -> end//
Query OK, 0 rows affected (0.17 sec)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女汉纸一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值