MySQL如何持续创建唯一的文件来输出?
我有以下存储过程MySQL如何持续创建唯一的文件来输出?,mysql,file-io,Mysql,File Io,我有以下存储过程 DELIMITER ## CREATE PROCEDURE exportFile() BEGIN Select * from Sample INTO OUTFILE '~/Sample.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; END ## DELIMITER ; 第一次调用存储过程后,您将得到错误1086(HY000):文件“~/Sample.csv”已经存在 --这是理所当然的 我需要不断地创建新
DELIMITER ##
CREATE PROCEDURE exportFile()
BEGIN
Select * from Sample
INTO OUTFILE '~/Sample.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
END ##
DELIMITER ;
- 第一次调用存储过程后,您将得到错误1086(HY000):文件“~/Sample.csv”已经存在 --这是理所当然的李>
- 我需要不断地创建新文件。(即Sample1.csv、Sample2.csv、Sample3.csv…等等)在每次通话中
问题:我该怎么做?为什么不在文件中附加时间戳 下面是将时间戳附加到文件的示例:
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 ;
对于调试递归存储过程,我也提出了类似的要求 这对我很有用:
SET @s = CONCAT('SELECT * INTO OUTFILE ',"'", CONCAT('Result',FLOOR(1000+RAND()*9999)),'.txt',"'",' FROM TempTable112');
PREPARE stmt2 FROM @s;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
我使用xampp并在C:\xampp\mysql\data\myfolder获得输出。mysql不允许将函数或变量用作filename@aleroot我一直在努力做到这一点,但当我尝试使用piotrekkr时,语法出现了一个错误4200。如果您可以使用mysqldump,那么这是最好的方法(imo)将mysqldump与tab选项一起使用:<代码>--字段以=….结尾,--字段以=….括起来,--字段可选地以=….括起来,--字段以=….转义。@piotrekkr您能用上面的示例对我进行一般设置吗。