MySQL如何不断创建输出的唯一文件?

sta*_*low 4 mysql file-io

我有以下存储过程

DELIMITER ##
CREATE PROCEDURE exportFile()
BEGIN

Select * from Sample
INTO OUTFILE '~/Sample.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

END ##
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
  • 在第一次调用存储过程后,您将获得ERROR 1086 (HY000): File '~/Sample.csv' already exists - 这是理所当然的.
  • 我需要不断创建新文件.(即,Sample1.csv,Sample2.csv,Sample3.csv ......等)每次调用.

问题:我该怎么做?

ale*_*oot 6

为什么不在文件中附加时间戳?

这是一个向文件追加时间戳的示例:

DELIMITER ##
CREATE PROCEDURE exportFile()
BEGIN

Select * from Sample
INTO OUTFILE CONCAT('~/Sample', CONCAT(DATE_FORMAT( your_date_field, '%d%m%Y') ,'.csv'))
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

END ##
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

  • Mysql不允许使用函数或变量作为文件名 (4认同)