求2个简单的MYSQL存储过程(更新和定时导表)
1.更新表中的数据如有表1,字段包括设备编号(key),质量,材质,尺寸等等。要求更新的时候,表中没有改设备记录,则新增改设备,否则更新该设备其他的字段。返回1或者0,表...
1.更新表中的数据
如有表1,字段包括设备编号(key),质量,材质,尺寸等等。要求更新的时候,表中没有改设备记录,则新增改设备,否则更新该设备其他的字段。返回1或者0,表示本记录更新成功。
2.有数据库表2,表3里面的字段完全一样,如表2有设备编号(key),datatme(key)和价格,而表3里面有设备编号(key),datetime和价格。要求定时把表3的记录导入表2中,且删除表3的记录。
谢谢啦~~ 展开
如有表1,字段包括设备编号(key),质量,材质,尺寸等等。要求更新的时候,表中没有改设备记录,则新增改设备,否则更新该设备其他的字段。返回1或者0,表示本记录更新成功。
2.有数据库表2,表3里面的字段完全一样,如表2有设备编号(key),datatme(key)和价格,而表3里面有设备编号(key),datetime和价格。要求定时把表3的记录导入表2中,且删除表3的记录。
谢谢啦~~ 展开
1个回答
展开全部
mysql> create table c1(sbbh int primary key ,zl int,cz varchar(20),cc int);
Query OK, 0 rows affected (0.00 sec)
mysql> create table c2(sbbh int,datatme date,jg int,primary key (sbbh,datatme));
Query OK, 0 rows affected (0.01 sec)
mysql> create table c3(sbbh int primary key,datatme date,jg int);
Query OK, 0 rows affected (0.01 sec)
更新表中的数据存储过程如下
create procedure p_c1(IN t_sbbh int,IN t_zl int,IN t_cz varchar(20),IN t_cc int,OUT t_out int)
begin
set t_out = 2;
set @t_numb =(select count(*) from c1 where sbbh=t_sbbh);
if @t_numb = 0 then
insert into c1(sbbh,zl,cz,cc) values(t_sbbh,t_zl,t_cz,t_cc);
set t_out=0;
else
update c1 set zl=t_zl,cz=t_cz,cc=t_cc where sbbh=t_sbbh;
set t_out=1;
end if;
end;
-- 查看是否开启定时器
SHOW VARIABLES LIKE '%sche%';
-- 开启定时器 0:off 1:on
SET GLOBAL event_scheduler = 1;
定时更新表2定时器如下(每天执行一次)
create event j_c3 on schedule every 1 day
on completion preserve enable
do
begin
insert into c2 select sbbh,datatme,jg from c3;
delete from c3;
end;
Query OK, 0 rows affected (0.00 sec)
mysql> create table c2(sbbh int,datatme date,jg int,primary key (sbbh,datatme));
Query OK, 0 rows affected (0.01 sec)
mysql> create table c3(sbbh int primary key,datatme date,jg int);
Query OK, 0 rows affected (0.01 sec)
更新表中的数据存储过程如下
create procedure p_c1(IN t_sbbh int,IN t_zl int,IN t_cz varchar(20),IN t_cc int,OUT t_out int)
begin
set t_out = 2;
set @t_numb =(select count(*) from c1 where sbbh=t_sbbh);
if @t_numb = 0 then
insert into c1(sbbh,zl,cz,cc) values(t_sbbh,t_zl,t_cz,t_cc);
set t_out=0;
else
update c1 set zl=t_zl,cz=t_cz,cc=t_cc where sbbh=t_sbbh;
set t_out=1;
end if;
end;
-- 查看是否开启定时器
SHOW VARIABLES LIKE '%sche%';
-- 开启定时器 0:off 1:on
SET GLOBAL event_scheduler = 1;
定时更新表2定时器如下(每天执行一次)
create event j_c3 on schedule every 1 day
on completion preserve enable
do
begin
insert into c2 select sbbh,datatme,jg from c3;
delete from c3;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询