• MySQL学习笔记(四)


    补充知识,后续可能会用到:

    1,AUTO_INCREMENT关键字(在尾部添加,放在主键后面):设置变量为自增变量

    2,一般情况下,MySQL的默认是以; 作为结束执行语句,与触发器中需要的分行起冲突

     解决办法:DELIMITER ||,可以将结束符号变成||

    当触发器创建后,可用DELIMITER;还原;

    一,触发器:顾名思义,触发器就是在对表进行插入,更新,删除操作时会触发的操作

    1.1创建触发器

    格式:在每个行的表名触发的操作之前/之后创建触发器名

    CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
    ON 表名 FOR EACH ROW
    BEGIN
        执行语句列表
    END

    触发的操作有三种:

    insert:insert触发进行操作,load data和replace也同样会触发操作。

    update:更新触发进行操作。

    delete:删除触发进行操作,更换也会触发操作。

    注意:对于一张表来说不能有俩个触发操作同样的触发器,只能各自有一个。

    1.2删除触发器:

    drop trigger器名

    1.3触发器的作用:当对数据表进行操作前后,触发器可用来检查数据表某些数据,或是进行对数据表的操作(插入某项数据,删除某项数据)

    实验用的雇员数据表,数项设置为AUTO_INCREMENT自增属性,插入时自动增加。

    //增加数列列的语句:alter table employee add column number int(1)primary key auto_increment;

    可以知道当前人数有7位,假定我们设定只能存入七位职员数据,通过一个触发器inspeck判断插入前人数(数目)是否超过人数限制7位

    在插入员工之前创建触发器检查 

    对于每一行

    开始

    if(从员工中选择计数(id))> = 7然后

    插入AAAAAAAA值(1); //由于目前的MySQL的没有抛出异常方法,设置一个语句插入不存在的表数据达到抛出异常效果

    万一;

    结束

    || //结束标志通过DELIMITER ||改为||

    此时已知表中有六位职员,只能添加最后一位,达到触发器限制,会在添加前(之前)限制添加。

    触发器可以使用的场景有很多,且具有一定逻辑性,例如:一张货物表,一张订单表,当添加一个新订单时需要检查货物数量是否达到订单要求,可以使用触发器在订单插入前检查另一表中数量。

    最后,删除触发器,毕竟一张表同一类型的触发器只能有一个。

    掉落触发检查;

    记得要将结束符改回来:DELIMITER;

    相关章节:

    (一)https://blog.csdn.net/qq_38487155/article/details/79475851

    (二)https://blog.csdn.net/qq_38487155/article/details/79488478

    (三)https://blog.csdn.net/qq_38487155/article/details/79508140

  • 相关阅读:
    解析时间parse time
    php一些高级函数方法
    PHP定界符<<<EOF
    linux crontab(定时任务)
    svn提交按钮灰选
    centos官网下载地址
    centos7 yum安装LAMP
    saprfc
    RSA加解密工具类RSAUtils.java,实现公钥加密私钥解密和私钥解密公钥解密
    接入HTTPS协议的CAS登录配置
  • 原文地址:https://www.cnblogs.com/MrQlyn/p/10236342.html
Copyright © 2020-2023  润新知