为什么在mysql存储过程中创建的临时表不能自动销毁??

woshigefantong 2008-06-19 10:47:08
BEGIN
declare idlower bigint;
declare idupper bigint;
declare totalreccount int;
declare mymod bigint;
CREATE TEMPORARY TABLE tmp_table15 (
rowid bigint auto_increment primary key,
userid bigint);
insert into tmp_table15 (userid) select ID from restcomments;
set idlower=(pageno-1)*pagesize+1;
set idupper=pageno*pagesize;
select * from tmp_table15;

/*计算总页数*/
select count(*) from tmp_table12 into totalreccount;
set pagecount=totalreccount;


drop table tmp_table2;

按说TEMPORARY的表在每次存储过程执行结束以后就自动销毁了,可是我这个存储过程每次执行过后再执行都说“tmp_table15 已存在”,我设置了tmp_table15 是临时的了啊,怎么执行完以后还会存在呢?
在数据库的表中还看不到这个表,连用drop tmp_table15都不行,到底是为什么啊





END
...全文
1111 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshigefantong 2008-06-20
  • 打赏
  • 举报
回复
看了你的代码,问题终于顺利解决了
谢谢了
好崇拜啊
懒得去死 2008-06-20
  • 打赏
  • 举报
回复
仔细检查!!!!!我给你修改的。



delimiter ||
create procedure sp_test1(
IN pageno int, IN pagesize int,
OUT pagecount int
)
BEGIN
declare idlower bigint;
declare idupper bigint;
declare totalreccount int;

drop table if exists tmp_table21;
CREATE TEMPORARY TABLE tmp_table21(
rowid bigint auto_increment primary key,
userid bigint
);


insert into tmp_table21 (userid) select ID from restcomments;
set idlower=(pageno-1)*pagesize+1;
set idupper=pageno*pagesize;
select * from tmp_table21;

/*计算总页数*/
select count(*) from tmp_table21 into totalreccount;
set pagecount=totalreccount;
end||
delimiter ;


wwwwb 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 woshigefantong 的回复:]
我试图使用你的方法,在存储过程的前面加上如果表已经存在就删除这个表
可是运行的时候,总是报“未知的table tmp_table21 ”
这是为什么啊?教我一下好吗
if exists TEMPORARY table tmp_table21 then
drop TEMPORARY table tmp_table21;
end if;
[/Quote]
DROP TEMPORARY TABLE
IF EXISTS tmp_table21;
woshigefantong 2008-06-20
  • 打赏
  • 举报
回复
我试图使用你的方法,在存储过程的前面加上如果表已经存在就删除这个表
可是运行的时候,总是报“未知的table tmp_table21 ”
这是为什么啊?教我一下好吗
if exists TEMPORARY table tmp_table21 then
drop TEMPORARY table tmp_table21;
end if;
懒得去死 2008-06-19
  • 打赏
  • 举报
回复
drop table tmp_table2;
wwwwb 2008-06-19
  • 打赏
  • 举报
回复
如果是上述代码的话,你DROP的是
drop table tmp_table2

tmp_table15
woshigefantong 2008-06-19
  • 打赏
  • 举报
回复
我在存储过程的最后也写了drop table tmp_table15了,可是再次运行还是老样子
如果说是 关闭连接时DROP
那不是说一个创建临时表的存储过程在一次连接中只能使用一次吗?这个好像不大合理啊
wwwwb 2008-06-19
  • 打赏
  • 举报
回复
按说TEMPORARY的表在每次存储过程执行结束以后就自动销毁了
NO,MYSQL停止运行
OR
A TEMPORARY table is visible only to the current connection, and is dropped automatically
when the connection is closed

关闭连接时DROP

用DROP TABLE 应该可以删除
woshigefantong 2008-06-19
  • 打赏
  • 举报
回复
类似的东西我在sql server上都做过
一切正常,怎么到了mysql总出毛病呢
懒得去死 2008-06-19
  • 打赏
  • 举报
回复
Move this statement drop table tmp_table2 to the beginning of your procedure.


Use statement drop table if exists tmp_table2 is better.
WWWWA 2008-06-19
  • 打赏
  • 举报
回复
用临时表比较 “干净”
apache6 2008-06-19
  • 打赏
  • 举报
回复
是否在其他地方有用到tmp_table15表的地方,把表锁住了。
我就奇怪了,你每次都要生成相同的表结构,为什么不只是每次清空表,然后插入数据?非要每次删除表!
WWWWA 2008-06-19
  • 打赏
  • 举报
回复
重新贴一下你的储存过程
woshigefantong 2008-06-19
  • 打赏
  • 举报
回复
我的权限就是数据库管理员啊
权限方面没有任何问题
WWWWA 2008-06-19
  • 打赏
  • 举报
回复
DROP时有没有提示?
wwwwb 2008-06-19
  • 打赏
  • 举报
回复
检查一下对临时表操作的权限
懒得去死 2008-06-19
  • 打赏
  • 举报
回复
Do you have privilege to drop your temporary table?
woshigefantong 2008-06-19
  • 打赏
  • 举报
回复
drop table tmp_table15这个我运行的时候已经改过来了
但是还是不行
到底是为什么啊
内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制的应用方法;②学习,体现了PLC在工业自动化控制的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境调试程序以加深对全自动洗衣机控制流程的理解。

57,064

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧