zoukankan      html  css  js  c++  java
  • MySQL创建触发器样例

    # init
    DROP TABLE IF EXISTS students;
    DROP TABLE IF EXISTS class;
    
    # 创建测试用的班级表
    CREATE TABLE class (
        class_id VARCHAR(10) PRIMARY KEY,
        stu_cnt INT(32) DEFAULT 0
    );
    
    # 创建测试用的学生表
    CREATE TABLE students (
        id INT(32) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        class_id VARCHAR(10),
        sname VARCHAR(20),
        CONSTRAINT fk_students_class_id FOREIGN KEY (class_id) REFERENCES class (class_id)
    );
    
    # 创建触发器tg_students
    CREATE TRIGGER tg_students
    AFTER INSERT 
    ON students FOR EACH ROW
    BEGIN 
    DECLARE c int;
    SELECT stu_cnt INTO c FROM class WHERE class_id=NEW.class_id;
    UPDATE class SET stu_cnt=c+1 WHERE class_id=NEW.class_id;
    end;
    
    # 创建班级的测试数据
    INSERT INTO class (class_id) VALUES ('c101');
    INSERT INTO class (class_id) VALUES ('c102');
    INSERT INTO students (class_id,sname) VALUES ('c101', 'zifeiy');
    INSERT INTO students (class_id,sname) VALUES ('c102', 'feifei');
    INSERT INTO students (class_id,sname) VALUES ('c101', 'feiyu');
    
    # 查看结果
    SELECT * from class
    

    在这个测试样例中创建了一个student表,和一个class表,每当我在student表中新增一个学生,class表终stu_cnt这个字段就会新增1。

  • 相关阅读:
    HDU 3466(01背包变种
    HDU 2639(01背包第K大)
    POJ 2184(01背包)(负体积)
    UVA 562(01背包)
    UVA 624(01背包记录路径)
    SQL总结二
    oracle--知识点汇总1
    时间日期----java
    字符串、数值----转换
    字符串反转----示例
  • 原文地址:https://www.cnblogs.com/zifeiy/p/9040832.html
Copyright © 2011-2022 走看看