第 3 行出现错误 1086 (HY000):文件“/var/lib/mysql-files/file_name.csv”已存在

问题描述 投票:0回答:1

我想每 15 分钟从数据库检索一次数据。但是,下面的代码不能按我想要的方式工作。即使我已经设置了 cronjob,我也需要手动运行并每次插入密码来检索数据,因为 CSV 文件不会每 15 分钟更新一次。我需要删除旧的 CSV 文件,因为它说它会覆盖旧文件。是否有任何其他代码选项可以将数据从数据库以 CSV 形式检索到 /var/lib/mysql-files ?除了使用 SELECT .. INTO OUTFILES? 之外。下面是我的代码。

use database name;

SELECT *  FROM ... 
INTO OUTFILE '/var/lib/mysql-files/file_name.csv'  
FIELDS TERMINATED BY ','  ENCLOSED BY '"'  
LINES TERMINATED BY '\n';

我想要一个可以帮助我将文件从 db 导出到 csv 的代码。

mysql database cron export-to-csv
1个回答
0
投票
-- select database
USE database_name;
-- build statement dynamically
SET @sql := CONCAT(
  'SELECT *  FROM ... INTO OUTFILE ''/var/lib/mysql-files/file_name',
  DATE_FORMAT(CURRENT_TIMESTAMP, '%Y_%m_%d_%H_%i_%s'),
  '.csv'' FIELDS TERMINATED BY '',''  ENCLOSED BY ''"'' LINES TERMINATED BY ''\n'';'
  );
-- prepare and execute statement
PREPARE stmt FROM @sql;
EXECUTE stmt;
DROP PREPARE stmt;
© www.soinside.com 2019 - 2024. All rights reserved.