zoukankan      html  css  js  c++  java
  • Mysql-学习笔记(==》触发器 十一)

    -------触发器--------


    USE db;
    SELECT FROM sss;

    CREATE TABLE sssbak LIKE sss;
    SHOW CREATE TABLE sss;
    SHOW CREATE TABLE sssbak;
    CREATE TABLE `sssbak` (
    `sid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `sname` VARCHAR(10) NOT NULL,
    `sscore` TINYINT(3) UNSIGNED DEFAULT NULL,
    `saddress` VARCHAR(30) DEFAULT NULL,
    `stel` BIGINT(20) UNSIGNED DEFAULT NULL,
    PRIMARY KEY (`sid`)
    ) ENGINE=MYISAM DEFAULT CHARSET=utf8


    CREATE TABLE `sss` (
    `sid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `sname` VARCHAR(10) NOT NULL,
    `sscore` TINYINT(3) UNSIGNED DEFAULT NULL,
    `saddress` VARCHAR(30) DEFAULT NULL,
    `stel` BIGINT(20) UNSIGNED DEFAULT NULL,
    PRIMARY KEY (`sid`)
    ) ENGINE=MYISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

    sss 学生信息表
    sssbak 学生补考表

    TRUNCATE sss;
    TRUNCATE sssbak;-- 清除表的内容
    SELECT FROM sss;
    SELECT FROM sssbak;
    -- 建立触发器 建立的对象为 new
    DELIMITER
    CREATE TRIGGER tt1 AFTER INSERT ON sss FOR EACH ROW
    BEGIN
    DECLARE ss TINYINT;
    SET ss=NEW.sscore;
    IF ss60 THEN
    INSERT INTO sssbak VALUES(NEW.sid,NEW.sname,NEW.sscore,NEW.saddress,NEW.stel);
    END IF;
    END
    DELIMITER;

    删除表sss中的元素 在sssbak中相应的元素也删除 删除的对象为 OLD
    DELIMITER
    CREATE TRIGGER tt2 AFTER DELETE ON sss FOR EACH ROW
    BEGIN
    DELETE FROM sssbak WHERE sid=OLD.sid;
    END
    DELIMITER;


    修改 OLD 修改之前 NEW 修改之后
    DELIMITER
    CREATE TRIGGER tt3 AFTER UPDATE ON sss FOR EACH ROW
    BEGIN
    DECLARE newss TINYINT;
    DECLARE oldss TINYINT;
    SET newss=NEW.sscore;
    SET oldss=old.sscore;
    IF newss=60 THEN
    DELETE FROM sssbak WHERE sid =NEW.sid;
    ELSE -- sss新的分数小于60的时候
    REPLACE INTO sssbak VALUES(NEW.sid,NEW.sname,NEW.sscore,NEW.saddress,NEW.stel);
    END IF;
    END
    DELIMITER;

    -- 使用触发器,实质性相关的操作时,自动触发的
    INSERT INTO sss VALUES(NULL,'张三',30,'北京',18290438501);
    INSERT INTO sss VALUES(NULL,'李四',90,'郑州',18290438501);

    -- 删除触发器
    DROP TRIGGER tt1;

    -- 查看db数据库中所有的触发器
    SHOW TRIGGERS FROM `db`;

  • 相关阅读:
    jquery直接操作元素的方式
    ie6下,给a添加事件,如果事件中有http请求,将会无效
    一个Tahoma字体bug引发的思考—关于样式bug的分析流程
    用弧度画圆
    【译】OWIN: Open Web Server Interface for .NET
    【译】Dependency Injection with Autofac
    Asp.net Identity身份与权限体系设计
    winform 数据(双向)绑定 快速更新实体
    泛型与非泛型的区别。
    使用XmlReader读Xml
  • 原文地址:https://www.cnblogs.com/huangf714/p/6148329.html
Copyright © 2011-2022 走看看