DELIMITER $$DROP PROCEDURE IF EXISTS `casino`.`loggamemain`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `loggamemain`()
begin
declare i int default 1;
while i < 31 do
set @sqlstr = concat(
'create table loggamemain',
i,
'(
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmid` int(11) DEFAULT NULL,
`gid` int(11) DEFAULT NULL,
`rid` bigint(20) DEFAULT NULL,
`gmname` varchar(30) DEFAULT NULL,
`shoeno` bigint(20) DEFAULT NULL,
`playno` bigint(20) DEFAULT NULL,
`cast` varchar(100) DEFAULT NULL,
`result` varchar(20) DEFAULT NULL,
`logdatetime` datetime DEFAULT NULL,
`logtype` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8'
);
prepare stmt from @sqlstr;
execute stmt;
set i = i+1;
end while;
end$$DELIMITER ;
这个是存储过程的建表语句,可以建31张天表。 我现在麻烦是我传入开始日期和结束日期后,比如我要查询10天,有10张表,跨表查询了这样。 用存储过程怎么写 希望有个大侠能帮忙写一个例子给我 谢谢
不过建议你给表建分区,别分表.
生成查询语句select * from loggamemain1
union all
select * from loggamemain2
union all
...
union all
select * from loggamemain10
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html