1、在触发器中调用存储过程
    触发器的使用: http://blog.const.net.cn/a/7698.htm
    Attention:
    a、进行update的时候,不能修改触发表( sys_user )的数据。
    b、 innodb引擎上的数据,触发器sql执行sql失败会进行回滚
    c、 mysql触发器里不能包含动态sql语句,PREPARE之类的,这个在创建时一般会提示 mysql触发器里不能包含动态sql语句,PREPARE之类的,这个在创建时一般会提示
   
  1. DROP TRIGGER IF EXISTS `user_master`;
  2. CREATE TRIGGER `user_master` BEFORE UPDATE ON `sys_user`
  3. FOR EACH ROW 
  4. BEGIN
  5. DECLARE _user_type CHAR(20);
  6. DECLARE _type_infos_id char(20);
  7. SET _user_type = '1';
  8. IF new.ADVER_ID = NULL THEN
  9. SET _user_type = '0';
  10. END IF;
  11. CALL proc1(_user_type);
  12. set _type_infos_id =  proc2();
  13. INSERT INTO user_master_info (USERID,TYPE_ID,CREATE_TIME) VALUES (new.USER_ID,_type_infos_id,NOW());
  14. END;
2、在存储过程生成视图

    Attention:
    a、 存储过程的参数如果是输入中文的话,要在定义存储过程的后面加上character set gbk这个编码,不然调用存储过程使用中文参数的时候会出错。eg:
    
  
  1. create  procedure countpro(out a_out int,in b_date date, in unit_name varchar(45) character set gbk)
   
  1. DROP PROCEDURE IF EXISTS `proc1`;
  2. CREATE PROCEDURE `proc1`(IN type_m CHAR)
  3. BEGIN
  4. DROP VIEW IF EXISTS view_master_type;  
  5.     SET @sqlstr = 'CREATE VIEW view_master_type as';
  6.     SET @sqlstr = CONCAT(@sqlstr , 'SELECT * FROM master_type_info WHERE TYPE_MODE = ', type_m);
  7.     PREPARE stmt FROM @sqlstr;
  8.     EXECUTE stmt;
  9.     DEALLOCATE PREPARE stmt;
  10. END;
3、通过游标遍历视图筛选出来的集合,并返回值

    Attention:
         a、 游标只能向前读取
   
  1. DROP PROCEDURE IF EXISTS `proc2`;
  2. CREATE PROCEDURE `proc2`(OUT _type_ids CHAR)
  3. BEGIN
  4. DECLARE _b char(20);
  5. DECLARE _type_infos CHAR(20);
  6. DECLARE _found boolean DEFAULT true;
  7.   DECLARE _num CURSOR for SELECT TYPE_ID FROM view_master_type;
  8. DECLARE CONTINUE handler for NOT FOUND set _found = false;
  9. OPEN _num;
  10. FETCH _num into _b;
  11. while _found do
  12. set _type_infos = CONCAT(_b,',',_type_infos);
  13. FETCH _num into _b;
  14. END WHILE;
  15. CLOSE _num;
  16. set _type_ids = _type_infos;
  17. END;
来自为知笔记(Wiz)

转载于:https://my.oschina.net/xForMe/blog/467877

触发器和存储过程的使用相关推荐

  1. 触发器与存储过程笔记

    触发器:在数据库记录发生新增.修改.删除前后触发 如何:合同中,金额=单价*数量 利用触发器实现,先拿到提交数据中的单价和数量,获取数据库表中的金额字段,将数量*单价的结果刚入到金额字段,new\ol ...

  2. Oracle 触发器调用存储过程|转||待研究|

    Oracle触发器调用存储过程资料收集整理 触发器:Trigger 存储过程:Stored Procedure // ******************** 收集1 **************** ...

  3. mysql触发器 存储过程_mysql触发器和存储过程

    Mysql触发器和存储过程 1 / 9Mysql触发器 1.语法:命名规则 CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ...

  4. Oracle12c与Oracle11g采用触发器与存储过程实现同步更新(代码+图解)

    一.保证两台笔记本网络互通 关于连接,详情见之前写的:WIFI网络,两台笔记本互联Oracle,一台是11g,一台是12c 现在测试的ip地址: A: 10.65.252.84 B: 10.82.15 ...

  5. 关于mysql触发器和存储过程的理解

    内容源自:一篇很棒的 MySQL 触发器学习教程 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊 ...

  6. oracle删除所有触发器的命令,Oracle删除当前用户的所有对象(表、视图、触发器、存储过程、函数)...

    Oracle删除当前用户的所有对象(表.视图.触发器.存储过程.函数) 1. DECLARE TYPE name_list IS TABLE OF VARCHAR2(40); TYPE type_li ...

  7. 序列、触发器和存储过程三者之间有啥关系

    序列.触发器和存储过程三者之间有啥关系? 好久没用oracle数据库了,今天复习了下oracle的序列.触发器和存储过程,之前对触发器和存储过程的概念有点模糊,今天来理理复习心得:存储过程相当于打包好 ...

  8. MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁

    浏览目录: 1.视图 2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份 1.视图 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据 视 ...

  9. Oracle 存储过程的创建,及触发器调用存储过程

    一.创建存储过程 1.存储过程写法 create or replace procedure HVM_BYQ_TJ--变压器统计信息--->入库 (id in number) as beginfo ...

  10. mysql查询触发器_mysql查看所有触发器以及存储过程等操作集合【转】

    1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND  TAB ...

最新文章

  1. 普通话计算机考试相关信息,普通话考试常见问题有哪些
  2. 解决Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz国内下载速度缓慢的问题
  3. JAVA EXCEL API(jxl)简介
  4. 第01课:中文自然语言处理的完整机器处理流程
  5. 我们用5分钟写了一个跨多端项目
  6. linux中php配置
  7. 《JavaScript高级程序设计》chapter 1: javascript 简介
  8. 天池 在线编程 牛郎织女(广度优先搜索)
  9. (转载)lepaiwed网站代码【全】
  10. 21 SD配置-主数据-客户账户组分配编号范围
  11. 阴阳师服务器维护更新,阴阳师服务器3月10日维护更新了什么 阴阳师服务器3月10日维护更新一览...
  12. DevExpress 小结
  13. 全自动降噪插件-Acon Digital Extract:Dialogue 1.1.2 WiN-MAC
  14. 解决:RuntimeError: Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU, but expected t
  15. DNS域名服务器的搭建
  16. 大脑信息编码_编码人大脑的5大小吃
  17. six MySQL 主主
  18. 数组可以存放实数吗?
  19. 微信商家收款码和个人收款码区别,你知道吗?
  20. am335x开发板的疑问以及解答

热门文章

  1. D3.js学习(一)
  2. FabFilter Total Bundle 2021 for Mac(经典音频效果器合集)
  3. MacBook Pro 16英寸样机模型正面视图psd素材
  4. 恐怖logo效果展示AE模板
  5. iOS底层探索之多线程(七)—GCD源码分析(死锁的原因)
  6. iOS底层探索之对象的本质和类的关联特性initIsa(下)
  7. 移动磁盘连接电脑后,仅有“只读”权限解决方案
  8. Camtasia实用技巧之行为效果
  9. 易语言 — 数据类型
  10. 学python之路前的一些话