mysql 触发器检测表数据添加,进而调用存储过程检测数据,进而调用存储过程添加数据
触发器:
begin
DECLARE user_mes INT(64);
SELECT user_id into user_mes FROM order_orderlist where id = new.order_orderlist_id limit 1;
Call ListenOrder(user_mes,new.goods_good_id);
end
数据监测存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `ListenOrder`(IN `user_id` int,IN `goods_good_id` int)
BEGIN
DECLARE _word INT;
DECLARE tmpid INT;
DECLARE course_id INT;
DECLARE goods_mes varchar(64);
DECLARE done INT DEFAULT FALSE;
DECLARE cur_course CURSOR FOR select id,good_ids from col_course where good_ids <> '';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur_course;
read_loop: LOOP
FETCH NEXT from cur_course INTO course_id,goods_mes;
IF done THEN
LEAVE read_loop;
END IF;
SET _word = LOCATE(',',goods_mes);
WHILE _word > 0
DO
SET tmpid = SUBSTR(goods_mes,1,_word-1);
IF tmpid = goods_good_id THEN
CALL AddUserCourse(user_id,course_id);
END if;
SET goods_mes = SUBSTR(goods_mes FROM _word+1);
SET _word = LOCATE(',',goods_mes);
END WHILE;
IF goods_mes = goods_good_id THEN
CALL AddUserCourse(user_id,course_id);
END if;
END LOOP;
CLOSE cur_course;
END
数据添加存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `AddUserCourse`(IN `user_id` int,IN `course_id` int)
BEGIN
INSERT into col_usercourse (user_id,course_id,createtime,`status`) VALUES(user_id,course_id,unix_timestamp(now()),'1');
END
mysql 触发器检测表数据添加,进而调用存储过程检测数据,进而调用存储过程添加数据的更多相关文章
- MySQL触发器实现表数据同步
其中old表示tab2(被动触发),new表示tab1(主动触发,外部应用程序在此表里执行insert语句) 1.插入:在一个表里添加一条记录,另一个表也添加一条记录DROP TABLE IF EXI ...
- Mysql 触发器 A表记录到B表
1:查询出需要的列名 备用 #列名 select COLUMN_NAME from information_schema.columns where TABLE_SCHEMA='yunpiaobox_ ...
- mysql触发器关联表更新
mysql> create table voteItem -> ( -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> titl ...
- MySql 触发器同步备份数据表记录
添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE /*!50017 DEFINER = 'root'@'%' */ TRIGGER `InsertOPM_Al ...
- MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it
MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it 博客分类: 数据库 MySQLJava ...
- redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)
一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...
- mysql触发器实时检测一条语句进行备份删除
问题描述:用户有一个这样一个需求,在一张表里会不时出现 "违规" 字样的字段,需要在出现这个字段的时候,把整行的数据删掉.这是个采集任务,如果发现有"违规"字样 ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- mysql 触发器学习(可以将mysql数据同步到redis)
1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_trigger befo ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
随机推荐
- mysql 解决忘记密码 mysql5.7 远程登录不上MySQL(解决腾讯服务器初始mysql密码问题)
一.修改MySQL启动配置文件 #如果不知道配置文件,先查找find / -name my.cnf#编辑配置文件 vim /etc/my.cnf 在[mysql] 下面第一行加入 skip-gran ...
- C++指针图解
- SpringBoot+JTA+Mybatis
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sinat_36596988/article ...
- python print import使用
>>> print("aaaa","bbbb")aaaa bbbb>>> print(1, 2, 3)1 2 3 为模块提供 ...
- 国庆集训Day1
T1 divide 题意: 有\(n\)个数 \(a_1, a_2,..., a_n\) 有m个数\(b_1, b_2,..., b_n\) 令\(a = a_1\times a_2\,\times ...
- Linux中查看和修改分区的uuid方便挂载使用
查看硬盘UUID: 两种方法: ls -l /dev/disk/by-uuid blkid /dev/sda1 修改分区UUID: 1.修改分区的UUID Ubuntu 使用 uuid命令 生成新的u ...
- 8月清北学堂培训 Day3
今天是赵和旭老师的讲授~ 状态压缩 dp 状态压缩是设计 dp 状态的一种方式. 当普通的 dp 状态维数很多(或者说维数与输入数据有关),但每一维总量很少时,可以将多维状态压缩为一维来记录. 这种题 ...
- cmake语法入门记录
刚刚开始学习ROS,打算入机器人的坑了,参考教材是<ROS及其人开发实践>胡春旭编著 机械工业出版社 华章科技出品.本来以为可以按照书上的步骤一步步来,但是,too young to si ...
- csp-s模拟110
倒计时三天. 这场又是巨头们的AK场,大众分200+,貌似真实的csps? 然而T1又炸了,$1<<62$暴int,要$1ll<<62$.T2试图打70部分分,T3也只会40分 ...
- expdp / impdp 用法详解 ,和exp / imp 的区别
一 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程 ...