mysql 判断表是否存在
场景:Mysql中,判断表是否存在。解决方法
Mysql中,判断表是否存在。
由于数据量过大,不同数据按月或按天存放,每月或每天自动生成数据表。
但是用户查询时间可能过长,所以,需要判断用户查询时间段内,表是否存在。
我想在整个SQL语句执行过程中,用while循环来检测表是否存在,这样比使用应用程序快些。之前在MSSQL上一直这么做,现在数据移植到MySQL上,使用while循环来做,总是不正确。
简单的说,我就是想在MySQL的SQL语句中(非函数、存储过程中)使用while循环,然后使用prepare 和 execute 执行动态的SQL语句。
求大侠帮助。
------解决方案--------------------
代码是什么,什么版本?5.1以上,可以用系统表
------解决方案--------------------
简单的说,我就是想在MySQL的SQL语句中(非函数、存储过程中)使用while循环,然后使用prepare 和 execute 执行动态的SQL语句
在MYSQL里,WHILE只能放到代码块里。让你失望了。
------解决方案--------------------
Mysql中,判断表是否存在。
由于数据量过大,不同数据按月或按天存放,每月或每天自动生成数据表。
但是用户查询时间可能过长,所以,需要判断用户查询时间段内,表是否存在。
我想在整个SQL语句执行过程中,用while循环来检测表是否存在,这样比使用应用程序快些。之前在MSSQL上一直这么做,现在数据移植到MySQL上,使用while循环来做,总是不正确。
简单的说,我就是想在MySQL的SQL语句中(非函数、存储过程中)使用while循环,然后使用prepare 和 execute 执行动态的SQL语句。
求大侠帮助。
------解决方案--------------------
代码是什么,什么版本?5.1以上,可以用系统表
------解决方案--------------------
简单的说,我就是想在MySQL的SQL语句中(非函数、存储过程中)使用while循环,然后使用prepare 和 execute 执行动态的SQL语句
在MYSQL里,WHILE只能放到代码块里。让你失望了。
------解决方案--------------------
- SQL code
DROP PROCEDURE IF EXISTS mydb.Clear_DB; CREATE PROCEDURE mydb.`Clear_DB`( ) BEGIN DECLARE done INT DEFAULT 0; #游标的标志位 DECLARE a varchar(20); DECLARE b varchar(20); DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_name like 'http_200909%' ; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO a; IF NOT done THEN set b=concat(b,'select * from ',a,' where name=http://scholar.google.com.hk union all'); # 拼 命令 END IF; UNTIL done END REPEAT; CLOSE cur1; SET @E=mid(b,1,length(b)-9); # 去掉最后一个UNION ALL PREPARE stmt1 FROM @E; EXECUTE stmt1; # 执行命令 DEALLOCATE PREPARE stmt1; #释放对象 END;
------解决方案--------------------
SELECT table_name FROM information_schema.TABLES WHERE table_name ='yourname';
这个命令才是重点。
------解决方案--------------------
zuoxingyu这个存储过程用的刚刚的
------解决方案--------------------
学习````````
------解决方案--------------------
MYSQL中无解。它不支持这种SQL语句。你的需求只能按四楼 zuoxingyu(差400分上北大) 的方法在存储过程中实现。
但在MYSQL中类似的情况应该是用分区表来实现,而不是实质上的分表。
------解决方案--------------------
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
------解决方案--------------------
很简单,
- SQL code
SHOW TABLES LIKE 'TB1'