zoukankan      html  css  js  c++  java
  • 触发器实现原理

    -----触发器实现原理------

    触发器:triiger 实现为某张表绑定好一段代码,当表中的默写内容发生改变的时候(增删查改)系统会自动触发代码,执行

    触发器的基本要素:事件类型,触发时间 触发对象

    事件类型:增删改 insert delete update
    触发时间:前后 before 和 after
    触发对象:表中的每一条记录(行)

    一张表中只能有一种触发时间的一种类型的触发器,最多一张表能有6个触发器

    触发器创建事例:


    首先创建表


    ①商品表:
    create table my_goods(
    id int primary key auto_increment,
    name varchar(20) not null,
    price decimal(10,2) default 1,
    inv int comment '库存数量')charset utf8;

    ②添加数据
    insert into my_goods values(null,'iphone8',5399,100),(null,'vivoX20',8999,100);

    ③订单表:
    create table my_order(
    id int primary key auto_increment,
    g_id int not null comment '商品id',
    g_number int comment '商品数量'
    )charset utf8;


    命令行运行建表

    --触发器:订单生成一个,商品库存减少一个

    --临时修改语句结束符
    delimiter $$

    create triiger after_order after insert on my_order for each row

    begin --触发器内容

    update my_goods set inv=inv-1 where id=2;

    end --触发器结束

    $$

    delimiter ;


    命令行运行 创建触发器成功 =    =

                  =

    查看触发器:

    show triggers;
    show triggersG;

    查看触发器创建语句:

    show create trigger 触发器名称(eg:after_orderG)

    注:所有的触发器都存储在一张表中 information_shema.triggers

    select * from information_shema.triggerG

  • 相关阅读:
    通用js模块02:validutils.js
    通用js模块04:cookieUtils.js
    通用js模块03:formatutils.js
    通用js模块01:stringutils.js
    应用开发平台与代码生成工具感想
    linq to sql 中isnumeric的使用
    很惭愧啊
    错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
    今天又温习了一下磁盘阵列的概念
    ashx的说明
  • 原文地址:https://www.cnblogs.com/liuzhen123/p/8064814.html
Copyright © 2011-2022 走看看