mysql 自己定义存储过程和触发器
2016-03-06 13:21
627 查看
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; 这样就搞定了
相关文章推荐
- mysqldump 参数说明
- Mysql无限递归树(由子找父数据父名称)
- mysql5.5 开启慢查询日志
- mysql 快速入门
- mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
- MMM(MYsql主主复制管理器解决方案
- 主主互备配合keepalived,MYSQL解决方案
- 做一个合格的程序猿之MYSQLSQL的EXPLAIN使用(四)
- Ubuntu 安装mysql和简单操作
- DEBUG:重装mysql失败的解决办法
- mysql知识点总结
- 在Windows上的MySQL 中如何用命令将数据库转存为.sql文件
- mysql数据类型优化
- day06 mysql加强
- 访问阿里云mysql数据库
- 访问阿里云mysql数据库
- 在32位Win7下安装MySQL5.7.10安装配置过程
- 业内大神浅谈MYSQL联合查询
- 21分钟 MySQL 入门教程
- MySQL C API programming tutorial