zoukankan      html  css  js  c++  java
  • MYSQL---触发器简单了解

    触发器 trigger

    1、触发器是指事先为某张表绑定一段代码,当表中某些内容发生改变(增insert、删delete、改update)时,系统自动触发绑定的那段代码并执行。比如 一旦订单表里插入新订单,商品的库存数自动减N.

    2、触发器的三要素:

    事件因素:insert、删delete、改update

    触发时间:前before、后after

    触发对象:表中每条记录,即整个表

    那么每张表可以有6个触发器(增、删、改3个事件的前和后)

    3、创建触发器

    delimiter--自定义符号

    create trigger+触发器名称+触发器时间+事件类型 on 表名 for each row;

    begin--触发器内容的开始

    ---触发器内容主体

    end--触发器内容结束

    delimiter.--恢复语句结束符

    4、以商品表goods  和订单表odrer举例说明触发器,sql语句如下:

    创建商品表:

    create table goods(

             in int primary auto_increment,

             name varchar(20) not null,----- not null:意思是不允许给这个字段插入空值

             price decimal(10,2)  default 0,------------decimal一种数据类型,decimal(5,2)表示一共5位数,小数位2位,整数位5-2位

                                                                           default:当没有给此字段插入值时,默认给的值

             inventory int comment '商品库存量'-----comment  类似注释,备注说明的意思

    )

    create table goods( id int primary key auto_increment, name varchar(20) not null, price int, inventory int );

    插入商品:

    insert into goods values (1,‘Apple’,11,100),(2,‘Pear’,21,100);

     

    创建订单表

    create table orders (id int primary key auto_increment, good_id int,good_num int);

    创建触发器

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

    create trigger after_order after insert on orders for each row

    begin---触发器主体内容开始

    update goods set invenment=invenment-1 where id=1;--触发器主体内容,每行要以分号;结束

    end---触发器主体内容结束

    $$--结束语句

    deloimiter;恢复语句结束符

    使用触发器

     

    由结果可以看出,在给订单表添加一条记录后,商品表中对应的商品库存数减了1(先不管数量应该减10)

    触发器的触发对象和事件类型,一定不能和触发主体相同,否则容易造成死循环

  • 相关阅读:
    进击的UI------------UIToolBar(bottom导航条)
    进击的UI-------------------UIPageControl(滑动控制)
    进击的UI---------------------UIStepper(加减)
    进击的UI--------------UIActionSheet(提示)
    python生成固定格式且不会重复的用户名
    python多判断if,elif语句优化
    python代码出现异常,自动重新运行
    批处理+adb命令实现Android截图小工具
    python爬取百度图片后自动上传
    map和filter函数
  • 原文地址:https://www.cnblogs.com/sunny0/p/8955684.html
Copyright © 2011-2022 走看看