MySQL创建触发器

-- 新增
create trigger YQHL_HTJS_B_HTJBXX_INSERT before insert on 表名
  for each row
    begin
    if (NEW.F_SYNC_UPDATE is null) or (NEW.F_SYNC_UPDATE = 0)  then
    set NEW.F_SYNC_UPDATE=null;
       -- 把新增加的记录插入到操作记录表
        insert into DATA_SYNC_B_OPERATOR(t_name, o_type, o_date, VKEYS) values(‘表名‘,1, CURRENT_TIMESTAMP,NEW.HTDQBH);
       end if;
end;

-- 修改
create trigger YQHL_HTJS_B_HTJBXX_UPDATE before update on 表名
  for each row
begin
if (NEW.F_SYNC_UPDATE is null) or (NEW.F_SYNC_UPDATE = 0)  then
   -- 插入和更新操作,更新时间戳F_SYNC_DATE=systimestamp和F_SYNC_UPDATE=null
set NEW.F_SYNC_UPDATE=null;
   end if;
end;

-- 删除
create trigger YQHL_HTJS_B_HTJBXX_DELETE before delete on 表名
  for each row
    begin
    if (OLD.F_SYNC_UPDATE is null) or (OLD.F_SYNC_UPDATE = 0)  then
       -- 插入和更新操作,更新时间戳F_SYNC_DATE=systimestamp和F_SYNC_UPDATE=null
           -- 把删除记录的主键添加到操作记录表
    insert into DATA_SYNC_B_OPERATOR(t_name, o_type, o_date, VKEYS) values(‘表名‘,3, CURRENT_TIMESTAMP,OLD.HTDQBH);
       end if;
end;
时间: 2024-08-08 16:18:40

MySQL创建触发器的相关文章

《MySQL必知必会》中创建触发器代码的“错误”

<MySQL必知必会>中使用触发器一章中的创建触发器的代码在MySQL5.7.20中报错:ERROR 1415 (0A000): Not allowed to return a result set from a trigger. 因为我不知道这是不是版本问题,所以给错误打上了双引号. 这是书中的原话: 报错:触发器不能返回结果集 网上查资料看到,可以将字符串赋给变量 原文地址:https://www.cnblogs.com/yxqxx/p/8963382.html

MySQL创建定时任务

一.前言 自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作.更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次.对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合. 事件调度器有时也可称

MySQL数据库触发器(trigger)

MySQL触发器(trigger):监视某种情况并触发某种操作 一:四要素 触发时间:before/after 地点:table 监视操作:insert/update/delete 触发操作:insert/update/delete 二:创建触发器 delimiter $     #将sql结束符改为$  方便写触发的sql语句 create trigger triggerName after/before insert/update/delete on tableName for each r

MySQL】触发器入门

MySQL 5.1包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象 ,即表的操作事件触发表上的触发器的执行. [创建触发器] 在MySQL中,创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:标识触发器名称,用户自行指定: trigger_time:标识

mysql之触发器

触发器 MySQL语句在需要时被执行,存储过程也是如此.但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,怎么办呢?例如:每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写:每当订购一个产品时,都从库存数量中减去订购的数量:无论何时删除一行,都在某个存档表中保留一个副本. 所有这些例子的共同之处是它们都需要在某个表发生更改时自动处理某个动作.这确切地说就是一个触发器. 触发器是MySQL 响应以下任意语句而自动执行任意其他的一条 MySQL语句(或位于B

mysql批处理/触发器/事务管理/存储过程

mysql里的批处理(sql语句) 格式: l mysql –u user –p < sql_file 表示从某个文件里执行sql语句 l mysql –u user –p < sql_file > out_file 表示从某个文件里执行,并将执行结果保存到out_file文件之中 举个例子: 小王每天早晨来之后,都需要查询班级共有多少人,还要查本学期共有几门课程,还要查询最近的考试成绩........需要做很多操作 sql.txt里  use pingtai;   //选择数据库 se

Mysql中触发器的使用

概念 触发器是一种特殊的事务,它监听增删改操作,并触发增删改操作.主要是用来处理一些比较复杂的业务逻辑以保证数据的联动性.其包含了四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 语法 CREATE TRIGGER '触发器名称' '触发时间(after|before)' '监听的事情(insert|update|delete) ' ON '触发地点'

mysql之触发器trigger

mysql之触发器trigger 触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 语法: create trigger triggerName after/before insert/update/delete on 表名 for each row   #这句话在mysql是固定的

MySQL创建用户权限结果Trigger失败

说来惭愧,MySQL我已经在只将用于,非常赞赏阶段. 甚至一些比较深层次的管理,不熟悉如何,我们要加强啊! 最近.系统测试,使用MySQL数据库,你需要在表上创建触发器.该数据库是安装在机.但.在任何情况下,你不能创建触发器,如以下背景错误消息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: TRIGGER command denied to user 'root'@'mortimer-PC' for table 't_us