首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL导出到输出文件并覆盖

MySQL导出到输出文件并覆盖
EN

Stack Overflow用户
提问于 2013-01-19 02:41:08
回答 2查看 14.1K关注 0票数 4

我对将mysql select语句导出到samba共享上的文件感兴趣。在我尝试更新文件之前,一切都很正常。例如,我让mysql导出到outfile peachtree.csv,当数据改变时,我想让它用新数据覆盖旧文件,但是,我得到了错误:error1086 (HY000):文件'/srv/samba/share/peachtree.csv‘已经存在。是否有一个选项或开关,我可以放在语句中,以强制或使其覆盖现有文件?

代码语言:javascript
复制
SELECT * FROM peachtree,
INTO OUTFILE '/srv/samba/share/peachtree.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-05 02:03:54

你不能。这是一项安全功能。否则,您可以选择像/etc/password或/etc/shells这样的文件。

从手册中:

SELECT ...INTO OUTFILE 'file_name‘形式的SELECT将选定的行写到文件中。该文件是在服务器主机上创建的,因此您必须具有file权限才能使用此语法。密码不能是现有文件,这可以防止/ file_name /passwd和数据库表等文件被破坏。

http://dev.mysql.com/doc/refman/5.0/en/select.html

票数 5
EN

Stack Overflow用户

发布于 2019-07-03 03:23:47

此解决方案使用动态SQL并写入Windows文件系统。

代码语言:javascript
复制
Select Now() Into @Now;                                              # get DateTime
Set @Now = Replace(@Now, ':', '-');                                  # format DateTime for the filesystem

# set Destination filename using formatted DateTime
Set @FilNam = Concat("'", 'd:/Folder/qrySelectToFile ', @Now, '.TXT', "'");
#Select @FilNam;                                                     # debug

# build query to execute, one clause at a time, for encoding purposes
Set @Sel     =  'Select * From vewViewName Into OutFile '    ; # Select From Into
Set @FldsTrm = ' Fields Terminated By ","'                         ; # Fields Terminated
Set @FldsEnc = Concat(" Enclosed By '", Char(34 Using utf8), "'")  ; #        Enclosed. 'Using' clause is to avoid a blob of 34 spaces.
Set @LinsTrm = " Lines Terminated By '\\r\\n'"                     ; # Lines  Terminated
Set @Qry = Concat(@Sel, @FilNam, @FldsTrm, @FldsEnc, @LinsTrm, ';'); # all together now

Prepare            Stmt From @Qry;                                   # Prepare
Execute            Stmt          ;                                   # Execute
Deallocate Prepare Stmt          ;                                   # Done

MySQL INTO OUTFILE override existing file?上的其他答案

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14405484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档