`
angelbill3
  • 浏览: 256502 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql 创建触发器-例子

 
阅读更多
业务逻辑:表myupload做了增加、修改、删除时,在表myuploaddaybook新增一条用来记录myupload表变化的行。

myupload表
CREATE TABLE `myupload` (
  `uploadid` int(11) NOT NULL AUTO_INCREMENT,
  `bookid` int(11) DEFAULT NULL,
  `numb` int(11) DEFAULT NULL,
  `saleuserid` int(11) DEFAULT NULL,
  `trdate` varchar(20) DEFAULT NULL,
  `state` char(1) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uploadid`)
) ENGINE=InnoDB AUTO_INCREMENT=856 DEFAULT CHARSET=utf8;


myuploaddaybook表
CREATE TABLE `myuploaddaybook` (
  `uploadid` int(11) NOT NULL AUTO_INCREMENT,
  `bookid` int(11) DEFAULT NULL,
  `numb` int(11) DEFAULT NULL,
  `saleuserid` int(11) DEFAULT NULL,
  `trdate` varchar(20) DEFAULT NULL,
  `mng` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`uploadid`)
) ENGINE=InnoDB AUTO_INCREMENT=856 DEFAULT CHARSET=utf8;


before insert
create trigger mydb_insert_trigger
before insert On myupload                      
for each row                                         
insert into myuploaddaybook(bookid,saleuserid,numb,trdate,mng) 
values(new.bookid,new.saleuserid,new.numb ,new.trdate,'insert')


before Update
Create Trigger mudb_update_trigger
before Update On myupload                      
for each row 
insert into myuploaddaybook(bookid,saleuserid,numb,trdate,mng) 
values(old.bookid,old.saleuserid,new.numb ,new.trdate,'update')


before delete
create trigger mydb_del_trigger
before delete On myupload                      
for each row                                         
insert into myuploaddaybook(bookid,saleuserid,numb,trdate,mng) 
values(old.bookid,old.saleuserid,old.numb ,old.trdate,'delete')



------------------------------
查看触发器:
show triggers;


删除触发器:
drop TRIGGER mydb_del_trigger;

分享到:
评论
1 楼 hu3625067 2013-04-10  
写的太棒了,受益匪浅!!!

相关推荐

    mysql-connector-java-5.1.15.jar

    在这个例子中,它特别提到与MySQL数据库6.0.5版本匹配。这意味着使用这个驱动时,应确保您的数据库服务器版本与此驱动兼容,以避免可能出现的兼容性问题。 `mysql-connector-java-5.1.15.jar`文件包含了所有必要的...

    mysql-connector-java-5.1.39.0.zip

    在这个例子中,我们首先加载了MySQL JDBC驱动,然后建立到本地MySQL服务器的连接,创建一个Statement对象,执行SQL查询并处理结果集。最后,关闭所有资源以释放连接。 在实际开发中,为了更好地管理和优化数据库...

    MySQL 5.0 触发器.rar

    MySQL 5.0 触发器是数据库管理系统MySQL中的一个重要特性,它允许用户在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行预定义的SQL语句,从而实现对数据的自动管理和控制。这在数据一致性、业务规则的...

    [数据库] Navicat for MySQL触发器更新和插入操作1

    5. **使用Navicat for MySQL创建触发器**: - Navicat 提供了图形化的界面来创建和管理触发器,但推荐直接编写SQL语句以确保精确控制触发器的行为。 6. **注意事项**: - 创建触发器时,通常会在开始时加入判断,...

    mysql触发器

    一、创建触发器 创建触发器需要用到CREATE TRIGGER语句。基本语法如下: ```sql CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name FOR EACH ROW BEGIN -- 触发器执行的SQL语句 ...

    触发器例子

    标题中的“触发器例子”指的是在数据库管理系统中使用的触发器(Trigger)的示例。触发器是一种数据库对象,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行,可以用来实现复杂的业务规则和数据...

    MySQL触发器.pdf

    在这个例子中,触发器`insert_order_time`在每条记录插入`orders`表之前执行,自动设置`order_time`字段为当前时间戳。 ##### 示例:“检查约束” 触发器也可以用来实现复杂的检查约束,确保数据符合预设规则。...

    mysql的触发器教程和示例代码

    二、创建触发器 创建MySQL触发器的一般语法如下: ```sql CREATE TRIGGER trigger_name ACTION_TIME ACTION_TYPE ON table_name FOR EACH ROW BEGIN -- 触发器主体 END; ``` 其中,ACTION_TIME是触发器执行的时间...

    MySQL触发器、存储过程、自定义函数、视图示例

    在这个例子中,我们创建了一个名为`userinfo`的表,每当有新记录插入到`userinfo`表时,触发器会自动将当前时间和插入的数据记录到另一个表`userinfolog`中。 ```sql CREATE TABLE userinfo (userid INT, username ...

    mysql触发器使用实例

    MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这为数据库的业务规则提供了强大的支持,可以确保数据的一致性和完整性。以下是...

    Mysql触发器介绍

    创建触发器的语法如下: ```sql CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ``` - `trigger_name`:触发器的名称。 - `trigger_time`:触发时间,使用 `...

    mysql触发器使用

    在这个例子中,我们创建了两个表`data`和`chars`,其中`chars`表用于记录`data`表中插入的每条记录的字符长度总和。通过定义一个AFTER INSERT触发器`t1`,每当有新的记录插入到`data`表中时,触发器会更新`chars`表...

    MYSQL中文手册--050906

    6. 存储过程和函数:MySQL支持创建自定义的存储过程和函数,用于执行复杂的操作,封装逻辑,提高代码复用性。 7. 触发器:触发器是在特定数据库事件(如INSERT、UPDATE、DELETE)发生时自动执行的SQL语句,常用于...

    mysql中经典的触发器语法及相关配置

    - **权限管理**:创建触发器需要特定的权限,这包括与触发器关联的表的权限以及可能的SUPER权限(如果启用了二进制日志记录)。 #### 三、创建触发器的基本语法 ```sql CREATE [DEFINER = user] TRIGGER trigger_...

    mysql-connector-java-5.1.47.zip

    在这个例子中,我们首先通过`Class.forName()`加载了MySQL JDBC驱动,然后使用`DriverManager.getConnection()`建立到本地MySQL服务器的连接。注意,实际应用中,应确保数据库URL、用户名和密码与实际配置相符,并且...

    mysql触发器.pdf

    ### 创建触发器的基本语法 在MySQL中,创建一个触发器的基本语法结构如下: ```sql CREATE TRIGGER trigger_name { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON tbl_name FOR EACH ROW BEGIN trigger_stmt...

    MySql MySql使用方法 Mysql例子

    在本文中,我们将深入探讨MySQL的使用方法,通过具体的例子来帮助你理解和掌握其核心概念。 1. 安装与配置MySQL 在开始使用MySQL之前,你需要在你的操作系统上安装MySQL服务器。这通常可以通过下载并运行安装程序...

    MySQL存储过程和触发器

    创建触发器的语法类似,但使用`CREATE TRIGGER`关键字: ```sql CREATE TRIGGER trigger_name BEFORE|AFTER|INSTEAD OF {INSERT|UPDATE|DELETE} ON table_name FOR EACH ROW WHEN (condition) BEGIN -- PL/SQL ...

    MYSQL触发器相关内容

    默认情况下,只有超级用户(如root)拥有创建触发器的权限。可以通过授予特定用户创建触发器的权限来扩展权限。 - **创建触发器权限**: ```sql GRANT CREATE TRIGGER ON <database>.<table> TO '<username>'@'...

Global site tag (gtag.js) - Google Analytics