mysql的触发器同数据库多表的数据操作_MySQL

php中文网
发布: 2016-06-01 13:30:04
原创
1332人浏览过

bitsCN.com

mysql的触发器同数据库多表的数据操作

 

摘要: 为了不改原有代码,实现客户端和服务端数据同步,为每个需要同步数据的表加上触发器。 介绍一下这个是对同一数据库中不同表的操作。在一张表中操作时,需要对其他表进行修改操作。

 

一.触发器的基本语法:

 

1、命名规则

 

CREATE TRIGGER BEFORE<触发器名称> <{//触发器必须有名字,最多64个字符,可能后面会附有分隔符  | AFTER }  //触发器触发时间是在事件之前触发还是之后触发(也可以在过程中触发){ INSERT | UPDATE | DELETE  //触发器三种事件}
登录后复制

 

ON FOR EACH ROW  //语句可以是任何合法的语句,包括复合语句,但是这里的语句受的限制和函数的一样

 

2、触发器的创建

 

不能给同一张表的同一个事件安排两个触发器,但是可以给同张表定义多个触发器(如:在同一张表对Insert事件定义一个触发器,对update再定义一个触发器)

 

3、基本的设置

 

给触发器设置权限:Gank create trigger on <表名> to 用户。回收权限:Revoke create trigger on 表明 from 用户删除触发器:drop TRIGGER 触发器名
登录后复制

 

 

MyISAM:不支持事务,用于只读程序提高性能  

InnoDB:支持ACID事务、行级锁、并发  

启科网络PHP商城系统
启科网络PHP商城系统

启科网络商城系统由启科网络技术开发团队完全自主开发,使用国内最流行高效的PHP程序语言,并用小巧的MySql作为数据库服务器,并且使用Smarty引擎来分离网站程序与前端设计代码,让建立的网站可以自由制作个性化的页面。 系统使用标签作为数据调用格式,网站前台开发人员只要简单学习系统标签功能和使用方法,将标签设置在制作的HTML模板中进行对网站数据、内容、信息等的调用,即可建设出美观、个性的网站。

启科网络PHP商城系统 0
查看详情 启科网络PHP商城系统

Berkeley DB:支持事务 

 

二:触发器语句

 

背景:在不修改原工程的情况去做安卓端和服务端的同步操作。为已经存在的项目里面的数据库建张表ict_table_version,然后在需要同步的表上加上一个字段version。(同步方案看文档)。

 

在需要同步的表上创建触发器。当表进行事物操作时,此表上的rowversion字段取最大值+1,同时ict_table_version表里面的version+1。语句:

 

CREATE TRIGGER ilt_tak_trigger before update //after出错不知为何ON ilt_takFOR each rowbegin
登录后复制

 

 

SET new.rowversion = (select max(rowversion)+1 from ict_tak) ;//new是获取前期记录标识。对于Insert语句,只有new是合法的,对于deleted语句,只有old是合法的。对于update语句两者都可以使用。

 

UPDATE ict_table_version  SET version = version+1 WHERE table_name='ict_tak';//对其它表操作end
登录后复制

 

 

注意在操作两条语句间没有用“and”而是用“;”。

 

在End前面加上exception  when...then...异常处理语句  End 对异常进行处理。同样,在End前面还可以加上事物回滚。 

 

bitsCN.com
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号