求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的记录。
谢谢啦~~
展开
 我来答
c6iz
2012-07-23 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1042万
展开全部
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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式