SQL可以选择使用INTO OUTFILE选项将数据转储到文件中
SELECT * from FIshReport INTO OUTFILE './FishyFile'
Run Code Online (Sandbox Code Playgroud)
问题是,只有在文件之前不存在的情况下才允许使用此命令.它创建文件然后输入数据.那么,有没有办法以这种方式将数据附加到文件?
以下命令:
select *
INTO OUTFILE '\home\user1\NetBeansProjects\project1\dumps\theData.csv'
FIELDS TERMINATED by ','
LINES TERMINATED BY '\n'
from database1
Run Code Online (Sandbox Code Playgroud)
不将名为theData.csv的文件写入指定目录.
有没有办法让输出SHOW DATABASES或SHOW TABLES命令输出到文本文件,类似于SELECT ... INTO OUTFILE工作方式?
在INTO OUTFILE上一个使用时产生语法错误SHOW命令.如果有办法使用cmdline工具(如mysqldump)生成此命令,我对外部命令开放.
我正在做一个SELECT INTO OUTFILE,它为每个NULL值显示"\ N" .我有什么方法可以让它变成空白吗?
我在使用MySQL.
我正在尝试将MySQL select语句中的一些数据写入运行Snow Leopard的Mac上的文件中.
select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
fractile_v2 != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会产生以下错误:
错误代码:1.无法创建/写入文件'/Users/andrew/Desktop/gics_v2.csv'(错误代码:13)
我假设是一个权限问题.
当我'/User/my-name/Desktop/gics_v2.csv'用简单gics_v2.csv的语句替换完整的文件路径似乎运行.但是我不知道文件保存在哪里,我找不到它.
有人知道吗?任何人都可以建议我如何解决初始写入错误?我以root用户身份运行MySQL.
我在我的用户上运行了grant文件.我正在使用绝对路径.Mysql用户有权在/ tmp写入.我只是找不到文件.我运行updatedb然后找到aa.txt,没有结果.
我在跑:
选择'aaaaaa'到outfile'/tmp/aa.txt';
Mysql响应:查询OK,1行受影响(0.02秒)
第二次运行相同的命令时,会出现错误:
ERROR 1086(HY000):文件'/tmp/aauua.txt'已存在
我在Fedora 18上运行mysql 5.5.31.有人知道可能出现什么问题吗?
我尝试在 Ubuntu 20.04 上使用 OUTFILE 并收到此错误:MySQL 服务器版本:8.0.21
代码:
mysql> select * into OUTFILE '/home/yash/Desktop/data2.txt' from ticket;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
Run Code Online (Sandbox Code Playgroud)
我尝试了很多解决方案,但它在 Ubuntu 20.04 上不起作用
如果有人可以提供 Ubuntu 20.04 和 MySQL 8.0.21 的解决方案,那么我们将不胜感激。
我正在尝试在两个数据库之间移动表,我正在使用MySQL提供的这个命令:
SELECT *
INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
Run Code Online (Sandbox Code Playgroud)
正如它在MySQL开发手册中所写的那样.我正在使用MySQL 5.1.
错误:
错误代码:1064您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的"\n"附近使用正确的语法
每次运行我都会遇到问题.它说因为'\n'而存在语法错误?这个问题的解决方案是什么?我正在使用MySQL Workbench来查询数据库.我尝试了命令行,IT给出了同样的错误.
请不要建议替代方案,我只想让这种方法起作用.
我不相信这个问题是重复的.
我希望正文中的行是"可选地用双引号括起来的".不应包含数值.没有标题就很容易做到.但是,当您使用UNION包含标头时,MySQL现在将每个列视为字符串类型,并将所有值括在引号中.
您可以像这样向SELECT INTO OUTFILE添加标题:
SELECT "id", "numerical_values", "string_values" #header section of csv
UNION ALL
SELECT `id`, `numerical_values`, `string_values` #body section of csv
INTO OUTFILE "/tmp/values.csv"
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM `values_table`
Run Code Online (Sandbox Code Playgroud)
同样,如果我省略标题,则仅用string_values引号括起来.使用标题,所有列都被视为字符串列并将被包含在内.
我试过这个:
SELECT '"', "id", ',"', "numerical_values", ',"', "string_values", '"'
#added quotes/commas to header
UNION ALL
SELECT `id`, ',', `numerical_values`, ',"', `string_values`, '"'
#added commas, and add quotes around string_values
INTO OUTFILE "/tmp/values.csv"
FIELDS TERMINATED BY "" ENCLOSED …Run Code Online (Sandbox Code Playgroud) 来自此文档:https://mariadb.com/kb/en/library/select-into-outfile/
我跑了
MariaDB []> select ... into outfile 'leads_ny.csv';
Query OK, 6674 rows affected (0.47 sec)
Run Code Online (Sandbox Code Playgroud)
现在我找不到该文件了。我查看了当前的工作目录、我启动的目录mysql、我的主目录,我什至find在每个目录上运行过,但我找不到它。我目前正在跑步$ find / -name leads_ny.csv。
mysql 版本 15.1 Distrib 10.1.30-MariaDB
我无法在 WINDOWS10(MySQL80 服务)上使用 mysqldump 将制表符分隔的文本文件写入指定的 TSV/ 文件夹。
secure-file-priv =""在my.iniMySQL 配置文件中。root用户名。命令是:
mysqldump -T C:\Users\...\20200430_Dump\TSV\ --user root -p database_name
输出:
mysqldump:出现错误:1:执行“SELECT INTO OUTFILE”时,无法创建/写入文件“C:\Users...\20200430_Dump\TSV\table_name.txt”(操作系统错误号 13 - 权限被拒绝)。
他们有很多关于 LINUX 的相关帖子,但我专门寻找WINDOWS的解决方案
我的小假设:一些 Linux 帖子建议 mysqld 使用特定的用户帐户(似乎mysql在 Linux 中,但遗憾的是没有针对任何操作系统进行记录)。所以我想象当服务器执行时INTO OUTFILE查询时他需要拥有 TSV/ 文件夹的权限,但我不知道如何在 WINDOWS 中给他这个权限。
最好的
知道为什么这在MySQL 5.1中失败了:
SET @LOAD_TIME = UNIX_TIMESTAMP();
SET @OUTFILE = CONCAT(CONCAT('/tmp/outfile_', @LOAD_TIME), '.sql');
SELECT *
FROM `tableA`
INTO OUTFILE @OUTFILE;
Run Code Online (Sandbox Code Playgroud)
它是MySQL的SELECT的限制还是我在这里遗漏了什么?
mysql_connect("localhost","root","");
mysql_select_db("hitnrunf_db");
$result=mysql_query("select * from jos_users INTO OUTFILE 'users.csv' FIELDS ESCAPED BY '""' TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n' ");
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=your_desired_name.xls");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
Run Code Online (Sandbox Code Playgroud)
在上面的代码中查询字符串即字符串在mysql_quey中
我们得到了以下错误
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\samples\mysql_excel\exel_outfile.php on line 8
Run Code Online (Sandbox Code Playgroud)
在查询字符串'\n'中,charter未标识为字符串,这就是上面出错的原因