zoukankan      html  css  js  c++  java
  • MySql 触发器简单实例

    一段时间不写又忘了

    /*取消外键约束*/
    SET FOREIGN_KEY_CHECKS=0;
    
    /*创建C1表 主键ID 字段name*/
    DROP TABLE IF EXISTS `c1`;
    CREATE TABLE `c1` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(120) CHARACTER SET utf8mb4 DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MEMORY DEFAULT CHARSET=latin1;
    
    /*C2与C1结构相同 去掉了ID自增*/
    DROP TABLE IF EXISTS `c2`;
    CREATE TABLE `c2` (
      `id` int(11) NOT NULL,
      `name` varchar(120) CHARACTER SET utf8mb4 DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MEMORY DEFAULT CHARSET=latin1;
    
    
    
    
    
    /*给C1创建一个触发器 名称叫c1-insert*//*触发条件是 AFTER INSERT*/
    DROP TRIGGER IF EXISTS `c1-insert`;
    DELIMITER ;;
    CREATE TRIGGER `c1-insert` AFTER INSERT ON `c1` FOR EACH ROW BEGIN 
    /*插入后的ID*/
    SET @id = NEW.id; 
    /*插入后的name*/
    SET @name = NEW.name ;
    INSERT INTO `c2` (`id`, `name`) VALUES (@id,@name); /*插入到C2表*/
    END
    ;;
    
    
    /*给C1创建一个触发器 名称叫c1-update*//*触发条件是 AFTER UPDATE*/
    DELIMITER ;
    DROP TRIGGER IF EXISTS `c1-update`;
    DELIMITER ;;
    CREATE TRIGGER `c1-update` AFTER UPDATE ON `c1` FOR EACH ROW BEGIN.
    /*修改前的ID*/
    SET @id = OLD.id; 
    /*修改后的name*/
    SET @name = NEW.name;
    UPDATE `c2` SET `name`=@name WHERE id = @id; /*更新到C2表*/
    END
    ;;
  • 相关阅读:
    Lock
    synchronized
    线程可见性与原子性
    线程安全问题
    MySQL索引背后的数据结构和原理
    求一颗二叉树中两个节点的最低公共父节点
    Session not active, could not store state 的解决方法
    https nginx 设置
    第三方支付系统
    facebook页面种简单测试js调用flash开放的js接口的方法
  • 原文地址:https://www.cnblogs.com/toumingbai/p/4758207.html
Copyright © 2011-2022 走看看