SQL有数据转储到一个文件,使用INTO OUTFILE选项选项,〔实施例如何从SQL数据附加到现有文件
SELECT * from FIshReport INTO OUTFILE './FishyFile'
问题是,该命令只有在允许的文件在它之前不存在。它创建文件,然后输入数据。 那么,有没有办法以这种方式将数据追加到文件?
SQL有数据转储到一个文件,使用INTO OUTFILE选项选项,〔实施例如何从SQL数据附加到现有文件
SELECT * from FIshReport INTO OUTFILE './FishyFile'
问题是,该命令只有在允许的文件在它之前不存在。它创建文件,然后输入数据。 那么,有没有办法以这种方式将数据追加到文件?
由于在SELECT语法MySQL的页面提示:
http://dev.mysql.com/doc/refman/5.0/en/select.html
的替代品,这是从MySQL客户端发出SELECT:
However, if the MySQL client software is installed on the remote machine,
you can instead use a client command such as mysql -e "SELECT ..." > file_name
to generate the file on the client host.
它,在你的情况下,将被修改为:
mysql -e "SELECT * from FishReport" >> file_name
这样,你只需一个放到文件中。
从你的Tcl脚本来,你可以简单地发出以此为exec命令:
你可以输出始终附加从SQL脚本使用文件>>
例如(用于Sybase):
isql <script.sql>> outputfile.out
我不能告诉你的是相当于什么MySQL,但原则应该是一样的。
当然,输出将全部转到一个文件,所以如果您的SQL脚本正在输出各种SQL选择到不同的输出文件,那么您需要将脚本分开。
,它并不真正起作用。我使用的是来自tcl脚本的MySql,因此无论何时发出命令,它都不会在屏幕上显示结果。但是,谢谢:) – 2011-01-20 13:31:11
我认为MySQL不允许将数据附加到现有的文件或覆盖出于安全原因,现有的文件。 解决办法可能是将分钟文件保存在单独的文件中,然后附加使用的文件IO。
您可以将其添加到变量。然后使用带有UNION的SELECT。
declare t varchar(100);
set @myvar = concat('
select * INTO OUTFILE \'',file,'\'
from (
select \'',t,'\'
union all
SELECT col from tbl where x
) a'
);
PREPARE stmt1 FROM @myvar;
EXECUTE stmt1;
Deallocate prepare stmt1;
哪个数据库供应商是我们在这里谈论的? – 2011-01-20 13:22:15
我正在使用MySql DB – 2011-01-20 13:24:48