mysql触发器对同一张表做操作_mysql的触发器同数据库 多表的数据操作
一.触发器的基本语法:
1、命名规则
CREATE TRIGGERBEFORE
| 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事务、行级锁、并发
Berkeley DB:支持事务
二:触发器语句
背景:在不修改原工程的情况去做安卓端和服务端的同步操作。为已经存在的项目里面的数据库建张表ict_table_version,然后在需要同步的表上加上一个字段version。(同步方案看文档)。
在需要同步的表上创建触发器。当表进行事物操作时,此表上的rowversion字段取最大值+1,同时ict_table_version表里面的version+1。语句:
CREATE TRIGGER ilt_tak_trigger before update //after出错不知为何
ON ilt_tak
FOR each row
begin
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前面还可以加上事物回滚。
mysql触发器对同一张表做操作_mysql的触发器同数据库 多表的数据操作相关推荐
- 37-博客网站数据库-博文分类信息数据操作(一)
37-博客网站数据库-博文分类信息数据操作(一) 项目描述 当今网上微博.博客发布信息已经成为主要的信息发布.传播的系统,如何对这些数据进行管理,本项目主要是对博客网站中的博文分类信息表.博文信息表进 ...
- 38-博客网站数据库-博文分类信息数据操作(二)
38-博客网站数据库-博文分类信息数据操作(二) 项目描述 当今网上微博.博客发布信息已经成为主要的信息发布.传播的系统,如何对这些数据进行管理,本项目主要是对博客网站中的博文分类信息表.博文信息表进 ...
- 24-在线考试系统数据库-班级学生信息数据操作(三)
24-在线考试系统数据库-班级学生信息数据操作(三) 项目描述 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的"在线考试系统"也得到了当今远程教育研究者的关注,考试是考察 ...
- 25-在线考试系统数据库-班级学生信息数据操作(四)
25-在线考试系统数据库-班级学生信息数据操作(四) 项目描述 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的"在线考试系统"也得到了当今远程教育研究者的关注,考试是考察 ...
- 22-在线考试系统数据库-班级学生信息数据操作(一)
22-在线考试系统数据库-班级学生信息数据操作(一) 文章目录 22-在线考试系统数据库-班级学生信息数据操作(一) 项目描述 在线考试系统数据库操作要求如下: (1)任务描述 项目描述 伴随着远程教 ...
- 23-在线考试系统数据库-班级学生信息数据操作(二)
23-在线考试系统数据库-班级学生信息数据操作(二) 项目描述 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的"在线考试系统"也得到了当今远程教育研究者的关注,考试是考察 ...
- mysql 两张表合并查询_mysql中的分区表和合并表详解(一个常见知识点)
分区表是mysql5.1之后的新特性,合并表已经存在很长时间了.这篇文章主要介绍这两个概念以及他们基本的操作. 一.合并表 合并表说实话是一种将要被淘汰的技术,但是掌握了合并表的概念再去看分区表就比较 ...
- mysql 的新建查询怎么弄_在Navicat中如何新建数据库和表并做查询
上一篇文章,小编给大家分享了在Navicat中如何远程连接数据库,没有来得及上车的小伙伴可以戳这篇文章:在Ubuntu14.04中配置mysql远程连接教程.今天小编给大家分享一下如何在Navicat ...
- MySQL优化调优有没有做过_MySQL 调优/优化的 100 个建议
MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定的安装环境,但是思路是相通的.我已经将它们分成 ...
- oracle遍历表做查询,oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)...
语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...
最新文章
- 最长公共上升子序列 LCIS
- .Net 自定义应用程序配置
- oracle视图执行脚本,Sh脚本中查询Oracle v$视图时需要在$号前加转义符“\”
- mysql子查询_笔记之MySQL子查询
- Integer String int 相互转化
- tomcat修改http长度限制_设置tomcat nginx上传文件大小限制
- CAT - 监控平台之装配篇
- 算法总结之 打印二叉树的边界节点
- 微软公布测试版Visual Studio for Mac和Visual Studio 2017 for Windows
- 最普通IT男-苦逼coder杂谈
- Java基础(五):多线程
- 《简明Python教程》--沈洁元
- html压缩工具html-minifier -- nodejs常用模块(4)
- 推动操作系统发展的主要动力是什么?
- PPT锁定了,不能编辑是什么原因
- uniapp 使用图表
- python3爬虫下载音乐_python3爬虫:下载网易云音乐排行榜
- php+供应商管理系统,供应商管理系统
- 让你的linux fedora 超过mac帅
- 一文带你了解 JavaScript 函数式编程
热门文章
- 团队的远程管理_不管理远程团队的7种方法
- 区块链必读的书_最好的区块链:5条必读
- 大牛用emacs还是vim_Emacs,Vim还是其他?
- (3)vue.js安装
- 前端:JS/30/综合实例:选项卡(HTML,CSS,JS)
- CSS 显示风格 appearance属性
- 视觉SLAM笔记(28) Ceres
- python 带随机指针的链表深度复制_链表--深度拷贝一个带有随机指针的链表
- 社团管理系统用c语言1000,图书馆管理系统C语言啊1000行啊,哪位老哥有啊??...
- java web应用开发期末考试_Java开发工程师(Web方向) - 04.Spring框架 - 期末测试