当前位置: 首页 > 面试题库 >

MySQL INTO OUTFILE是否覆盖现有文件?

郎华皓
2023-03-14
问题内容

我写了一个大的sql脚本来创建CSV文件。我想每天晚上调用cronjob来创建一个新的CSV文件,并在网站上提供该文件。

假设我将文件存储在“ /home/sites/example.com/www/files/backup.csv”中

我的SQL是

SELECT * INTO OUTFILE '/home/sites/example.com/www/files/backup.csv'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM ( ....

当文件已经存在时,MySQL给我一个错误

文件“ /home/sites/example.com/www/files/backup.csv”已存在

有没有办法使MySQL覆盖文件?

我可以让PHP检测文件是否存在,并在再次创建之前将其删除,但是如果我可以直接在MySQL中进行操作,它将更加简洁。


问题答案:

不,没有办法覆盖它。从文档:

file_name不能是现有文件,这尤其可以防止破坏/ etc / passwd和数据库表之类的文件。

最好每晚使用不同的文件名,因为进行多次备份意味着您可以从存在超过一天的问题中恢复。然后,您可以维护一个始终指向最新完整csv的符号链接。



 类似资料:
  • 问题内容: 这个: 在html中调用,例如: 向div元素添加一个字符串。正是我想要的。但是,这: 这样称呼: 似乎正在覆盖我的整个html文件。即,当我在Firefox中运行它时,它仅显示字符串(即页面的全部内容),但页面似乎仍在加载(FF的加载图标仍在进行动画显示,显然是无限的)。 首先,这将仅在本地,离线使用,作为呈现数据的快速便捷方式(使用html + js和网络浏览器而不是纯文本文件)。

  • 我的@SpringBootApplication注释存在于包中。 根据本文,使用@SpringBootApplication注释等同于使用@Configuration、@EnableAutoConfiguration和@ComponentScan及其默认属性:- https://docs.spring.io/spring-boot/docs/2.0.x/reference/html/using-b

  • 据我所知,<code>override</code>关键字声明给定的声明实现了一个基本<code>virtual</code>方法,如果没有找到匹配的基本方法,编译应该失败。 我对< code>final关键字的理解是,它告诉编译器任何类都不能覆盖这个< code >虚拟函数。 那么是多余的吗?它似乎编译得很好。最终传达哪些信息而信息不传达?这种组合的用例是什么?

  • 链接的问题不一样 - 甚至没有提到 编辑:新的副本列表包含一个合法的副本,我在搜索中没有找到。 在问这个问题之前,我不知道是否在派生类成员中使用的选择对某些人来说将是一个有争议的问题。 我刚刚遇到了一些如下所示的源代码: 我不确定如何解释这个,甚至在读完这个之后。 这里的< code>override是指< code>virtual吗?< code>void B::method()未被标记为虚函数

  • 更新:我正在工作的web服务为给定的lon/lat维度和缩放级别生成分段航空图表/地图。我在生成的底图上渲染的覆盖层之一是天气(雷达反射..)基于我所拥有的信息(lon/lat,尺寸和缩放级别),我想在我的基础地图上渲染天气覆盖。我面临的挑战是如何使用LON/LAT获得天气覆盖?

  • 我的问题是“另存为”对话框。如果我保存为一个不存在的复合文档,那么一切都很好。如果我双击一个现有的复合文档,那么我的代码会询问您是否要覆盖它,这也很好。 但是,错误的是,如果您键入现有复合文档的名称并单击save,它就像您单击cancel一样。 我使用FileFilter和FileView来配置所有文件的显示和过滤。 null (无论如何,在我看来)这是错误的。它应该返回APPROVE_OPTIO