mysql创建触发器

注:触发器中不能调用存储过程,触发器功能应尽量简单

use d_database_name;-- 切换到数据库
set NAMES 'utf8';

-- drop if exists when update can use
drop trigger if exists tr_update_bind_sno;

delimiter //

create trigger tr_update_bind_sno
after update on t_order_19
for each row
begin

  -- 用户注册手机号
  declare v_cellphone varchar(16);

  -- old记录更新前的状态,new代表更新后的数据
  if old.c_bind_sno<>new.c_bind_sno
     && length(old.c_bank_card)>0
  then
     -- 获取用户注册手机号
     select c_cellphone into v_cellphone from t_user
     where c_user_id=c_user_id;

     -- 更新t_channel_account的绑卡标示和预留银行手机号
     update t_channel_account
     set c_bind_number=old.c_bind_sno
     ,c_bank_cellphone=old.c_bank_cellphone
     where c_user_id=old.c_user_id;

  end if;
end //

delimiter ;
时间: 2024-10-06 08:01:03

mysql创建触发器的相关文章

mysql创建触发器报错,请高手帮忙看下

问题描述 mysql创建触发器报错,请高手帮忙看下 DROP TABLE if EXISTS tb; CREATE TABLE tb(BH CHAR(16),content VARCHAR(20),date DATETIME,val INT); CREATE TRIGGER tri_NewBH BEFORE INSERT ON tb FOR EACH ROW BEGIN DECLARE dt CHAR(8) DECLARE bh_id CHAR(16) DECLARE number INT(1)

MYSQL设置触发器权限问题的解决方法_Mysql

本文实例讲述了MYSQL设置触发器权限的方法,针对权限错误的情况非常实用.具体分析如下: mysql导入数据提示没有SUPER Privilege权限处理,如下所示: ERROR 1419 (HY000): You do not have the SUPER Privilege and Binary Logging is Enabled 导入function . trigger 到 MySQL database,报错: You do not have the SUPER privilege an

mysql之触发器trigger的使用例子

为什么要使用触发器   触发器的优点   1,触发器的"自动性" 对程序员来说,触发器是看不到的,但是他的确做事情了,如果不用触发器的话,你更新了user表的name字段时,你还要写代码去更新其他表里面的冗余字段,我举例子,只是一张表,如果是几张表都有冗余字段呢,你的代码是不是要写很多呢,看上去是不是很不爽呢. 2,触发器的数据完整性 触发器有回滚性,举个例子,我发现我很喜欢举子,就是你要更新五张表的数据,不会出现更新了二个张表,而另外三张表没有更新. 但是如果是用php代码去写的话,

mysql中触发器的简单实例

 一个简单的例子 1.1. 创建表:    create table t(s1 integer); 1.2. 触发器:  代码如下 复制代码 ?delimiter | create trigger t_trigger before insert on t  for each row  begin set @x = "hello trigger";        set NEW.s1 = 55; end;  | 1.3. 如果触发器创建错误,可能只能删除了,至少我试过不能replace

MySQL中触发器的基础学习教程_Mysql

0.触发器的基本概念触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力. 数据库触发器有以下的作用: (1).安全性.可以基于数据库的值使用户具有操作数据库的某种权利.   # 可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据.   # 可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%. (2).审计.可以跟踪用户对数据库的操作.     # 审计用户操作数据库的语句.

MySQL中触发器入门简单实例

创建触发器.创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中trigger_name标识触发器名称,用户自行指定: trigger_time标识触发时机,用before和after替换: trigger_event标识触发事件,用insert,update和delete替换: tbl_name标识建立触发器的表名,即在哪张表上建立触发

MySQL中触发器入门简单实例与介绍_Mysql

创建触发器.创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中trigger_name标识触发器名称,用户自行指定: trigger_time标识触发时机,用before和after替换: trigger_event标识触发事件,用insert,update和delete替换: tbl_name标识建立触发器的表名,即在哪张表上建立触发

MySQL的触发器写法

mysql教程的触发器写法*/ trigger_name:触发器的名字,我常用的命名规则t_name_tablename_(b|a)(i|u|d),t:触发器标识,name:英文名,tablename:表名,b(before):标识是触发事件之前,a(after):标识触发事件之后,i(insert):标识insert事件,u(update):标识update事件,d(delete):标识delete事件; trigger_time:触发时间(before或after) trigger_even

mysql教程-触发器

触发器 1. mysql触发器 情景说明 情景设置,如图,当我们点击了购买,将会发生什么? 现有如下两张表 商品表 编号(id)名称(name)价格(price)库存(stock) 1F2战斗机10000100 2法拉利80070 3航空母舰500020 4三栖交通工具100050 订单表 编号(id)商品编号(tid)购买数量(num)下单时间(order_time) 我们现在要买5架F2战斗机,下一个订单,需要做什么? 传统的做法: insert into ord(tid,num) valu