mysql 自己定义存储过程和触发器
mysql 自己定义存储过程和触发器 --存储过程示范
DROP PROCEDURE IF EXISTS PRO_TEST;
CREATE PROCEDURE PRO_TEST(IN NUM_IN INT,OUT NUM_OUT INT,INOUT NUM_INOUT)
BEGIN
//DO ANYTHING YOU WANT
END; 參数解释:
in : 就是输入參数。输入參数是会被传入到存储过程作为參数使用。改变它的值将不会改变其原本值,相当于是值传递
out: 此为输出參数,在存储过程中为给其值时,哪怕之前传入值,其值也仅仅是NULL,相当于是在存储过程中新建一个值并付给out參数并输出
inout:此为输入输出參数。能够理解为前两者之和。最为简单的就是理解为依照对象传递 在命令行中怎样调用:
SET @NM_IN=1,@NM_OUT=2,@NM_INOUT=3;
call PROC_TEST(@NM_IN,@NM_OUT,@NM_INOUT); 在java中怎样调用:
想办法得到connection,在hibernate中为getSession().connection();
使用Java.Sql.CallableStatemet call=connection().prepareStatement("call PROC_TEST(1,2,3)");
call.executeQuery()将返回ResultSet对象,call.executeUpdate()将会返回受影响的行数。 --触发器演示样例
触发器依照触发类型可分为:INSERT,UPDATE,DELETE触发器,
依照触发时间可分为:BEFORE,AFTER,
依照内容新旧可分为:OLD,NEW,当中删除操作仅仅有OLD,新增操作仅仅有NEW,改动操作两者皆有 eg:没改动user表一次,就往user_back表插入改动之前和改动之后的数据:
CREATE TRIGGER TRI_UPGRADE_USER BEFORE UPDATE ON USER FOR EACH ROW
BEGIN
INSERT INTO USER_BACK(USERNAME,USERPWD) VALUES(OLD.USERNAME,OLD.USERPWD);
INSERT INTO USER_BACK(USERNAME,USERPWD) VALUES(NEW.USERNAME,NEW.USERPWD);
END; 这样就搞定了
mysql 自己定义存储过程和触发器的更多相关文章
- MYSQL如何导出存储过程和触发器?
今天遇到.. 类似下面的就可以: mysqldump -u root -p -ntd -R nxsc>nxsc_trigger.sql
- MySQL笔记---视图,存储过程, 触发器的使用入门
大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只 ...
- MySQL笔记 存储过程 游标 触发器
第二十三章 使用存储过程 MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成 存储过程简单来说,就 ...
- mysql之视图,存储过程,触发器,事务
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时 ...
- mysql 视图,事务,存储过程,触发器
一 视图 视图是一个虚拟表(非真实存在),是跑到内存中的表,真实表是硬盘上的表.使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sq ...
- MySQL必知必会笔记(六)存储过程 游标 触发器
留印:http://blog.sina.com.cn/s/articlelist_1254871964_5_1.html 第二十三章 使用存储过程 MySQL5 中添加了存储过程的支持. ...
- mysql存储过程和触发器
mysql编程(存储过程和触发器) 存储过程 什么是存储过程 存储过程,带有逻辑的sql语句 存储过程特点 执行效率非常快!存储过程是在数据库的服务器端执行的!!! 移植性很差!不同数据库的存储过程是 ...
- MySQL中的存储过程、函数与触发器
一.对待存储过程和函数的态度 优点: 1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译.能提高数据库执行速度. 2.简单复杂操作结合事物一起封装. 3.复用性高. 4.安全性高,可指定存 ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
随机推荐
- C++11 多线程 基础
C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用 ...
- Hacker(21)----密码攻防之加密与解密基础
密码对于用户而言并不陌生,它是一种用于保护重要信息和文件的工具,只有输入正确的密码才可查看文件和信息的具体内容.黑客为了获取这些信息,会采用各种方式来破解密码,因此用户不仅需要了解黑客破解密码的常用方 ...
- React数据传递
React基础概念 React是基于组件化的开发,通过组件的组合,让web应用能够实现桌面应用的效果. React更有利于单页应用的开发. 并非MVC框架,只能算是V 具有单项数据流的特点 优势:代码 ...
- CaseFile
出处 http://tools.kali.org/information-gathering/casefile CaseFile is the little brother to Maltego. I ...
- html5新特性--音频视频,拖放
1.音频 <audio controls> <source src="aaa.ogg" type="audio/ogg"> <so ...
- hdu1087 简单DP
I - 简单dp 例题扩展 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:32768KB ...
- rman全库恢复到不同主机,不同实例名,不同目录下
一.配置目标主机的ip.hostname及与源端主机的连通性 1.配置目标主机IP 使用图形界面配置IP: administration----network---修改IP(指定静态IP) deact ...
- 什么是JSONP以及它是怎么产生的
什么是JSONP以及它是怎么产生的 1.什么是jsonp JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Scr ...
- ubuntu下安装postgres
PostgreSQL 是一款强大的,开源的,对象关系型数据库系统.它支持所有的主流操作系统,包括 Linux.Unix(AIX.BSD.HP-UX,SGI IRIX.Mac OS.Solaris.Tr ...
- 64位Ubuntu14.04搭建ADT开发环境
本来放假是要出去玩的,结果出游计划拖到了周一,今天先来无事看看ubuntu最近发展得怎么样了,顺便把ADT也搭建好,方便以后研究android框架.想想在windows下,ADT直接down下来解压就 ...