如何使用动态可变的SQL语句?

madmanahong 2011-05-18 12:05:03
我想每天都把一个表的数据保存到文件中

select * into outfile ... from a;

但是这个文件名我想就是今天的日期。

select * into outfile '2011-05-18.txt' from a;
select * into outfile '2011-05-19.txt' from a;
select * into outfile '2011-05-20.txt' from a;

如何做呢?



...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
madmanahong 2011-05-18
  • 打赏
  • 举报
回复
SET @s = 'select * into outfile \'?\' from aaa';
PREPARE stmt FROM @s;
SET @filename = CURDATE();
EXECUTE stmt USING @filename;


EXECUTE stmt USING 'test.txt';


都会报1064错。。。。



madmanahong 2011-05-18
  • 打赏
  • 举报
回复
1. prepare貌似可以,还有其他途径吗?
不行我就用这个吧。

2. 生成文件 XXX, 然后在操作系统中更名。
这种方式个人感觉接受不了。况且需求很明确,手工修改浪费人力。
ACMAIN_CHM 2011-05-18
  • 打赏
  • 举报
回复
试试用PREPARE,

但更常见的方法是 生成文件 XXX, 然后在操作系统中更名。
ACMAIN_CHM 2011-05-18
  • 打赏
  • 举报
回复
[Quote]这种方式个人感觉接受不了。况且需求很明确,手工修改浪费人力。[/Quote]楼主需要掌握一下操作系统脚本的技巧。
ACMAIN_CHM 2011-05-18
  • 打赏
  • 举报
回复
SET @s = concat('select * into outfile ',CURDATE(),' from aaa');
PREPARE stmt FROM @s;
EXECUTE stmt ;
rucypli 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 madmanahong 的回复:]
手工修改浪费人力[/Quote]


计划任务调用bat文件

执行
dos命令 ren 原文件名 新文件名

56,687

社区成员

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

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