- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文件,例如 data.csv
,它正在进入我的服务器,我想将其导入到 data
MySQL 数据库中的表使用 mysqlimport
.
我的问题是,该文件的数据比我实际想要导入的数据多得多。它被我之前的另一台服务器使用,该服务器需要所有这些数据,但我只需要其中的少数列。
有没有办法指定我想要的列 mysqlimport
使用?
我认为它看起来像
mysqlimport --columns="field_1","field_2","field_42","field_31","field_16","field_4" db data.csv
但该表只包含文件的前 6 个字段。如果需要,我可以重新排列表格,以便我想要的字段按顺序排列(即,我将运行 --columns="field_1","field_2","field_4","field_16",...
)。
我隐约意识到这可以使用 sed
来完成,但我很好奇是否 mysqlimport
原生支持吗?
编辑:接受的答案并不完全是我所希望的,但我认为答案是,“不,遗憾的是它不支持它”。无论如何,请查看已接受的答案和评论以获取解决方法!
最佳答案
--columns
选项不会命名输入文件的列。它命名您要导入的目标表的列。输入文件的所有字段都需要放在某个地方。 --columns
中的列数需要与输入文件的字段数一样多。
但并非输入文件的所有字段都需要放入表的列中。
嗯?
这里有一个技巧(这也适用于LOAD DATA INFILE
):您可以将输入字段“发送”到表的实际列或 session 变量。该变量将被文件中的每一行输入覆盖,但这并不重要。将其视为代码项目中的虚拟变量。
示例:我创建了一个包含三列的表格。
mysql> create table mytable (one text, two text, four text);
我创建了一个包含四个字段的输入文本文件。
$ cat mytable.csv
one,two,three,four
在这里,我将字段导入到各自的列中,通过将其放入虚拟变量来跳过字段三。
$ mysqlimport --local --columns one,two,@dummy,four --fields-terminated-by=, test mytable.csv
成功!
mysql> select * from mytable;
+------+------+------+
| one | two | four |
+------+------+------+
| one | two | four |
+------+------+------+
关于mysql - 将 mysqlimport 与文件列的子集一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398841/
我需要构建一个流程,将 csv 数据导入到我的 mysql 数据库上的单个表中。该进程需要在每个单独的服务器上独立运行。我可以在多个单独的服务器上同时执行此语句吗? mysqlimport --i
我正在使用 mysqlimport 来提取 csv 文件。 这是我使用的命令: mysqlimport --ignore-lines=1 --fields-terminated-by=, --colu
我有一个很大的 CSV 数据文件。文件中的字段之一包含 ™ 符号。我已经使用 创建了表格 CREATE TABLE scraped_data( .....) ENGINE=MyISAM DEFAULT
请建议使用 mysqlimport 通过读取 CSV 文件来附加到包含索引的表的正确方法。 最佳答案 您无法在 .csv 数据文件中添加索引。我建议先进行 sql 转储或 csv,然后创建索引。 关于
我正在尝试将 CSV 文件导入 MySQL 5.1 数据库。 创建表的脚本是: CREATE TABLE `session_hdr` ( `id` bigint(20) unsigned NOT
我们有一个很大的制表符分隔的文本文件(大约 120,000 条记录,50MB),我们试图使用 mysqlimport 将其插入 MySQL。有些字段用双引号引起来,有些则没有。我们正在使用 field
我是 MySQL 新手。我以这种方式创建了表 CREATE TABLE mail ( t DATETIME, # when message was sent srcuser
我需要恢复已转储的数据库,但不丢弃表中的现有行。 转储我使用: mysqldump -u root --password --databases mydatabase > C:\mydatabase.
我有一个 csv 文件,其中的日期字段格式如下(在其他字段中): 17DEC2009 当我执行 mysqlimport 时,其他字段已正确导入,但此字段仍然是 0000-00-00 00:00:00
我用 Perl 编写了一个脚本来创建数据库模式: CREATE TABLE descType ( id MEDIUMINT unsigned PRIMARY KEY, descr ME
这是我在 Java 中使用 Runtime.getRuntime().exec() 运行的命令: mysqlimport --fields-terminated-by=, --lines-termin
我正在尝试导入一个大文件,它真的很大,而且似乎不起作用,所以我把它分成了几部分。第一篇花了2分钟,第二篇花了将近一个小时!怎么会这样??? bash-3.2$ wc -l allelePiecesaa
我正在将数据导入到包含大量记录的 InnoDB 表中。命令 mysqlimport 表示导入成功,如下所示。我正在将数据导入到空表中。 C:\xampp\mysql\bin>mysqlimport.e
我一直在玩 mysqlimport,我遇到了文件名必须与表名相同的限制。有什么办法可以解决这个问题吗? 我无法重命名该文件,因为其他进程正在使用它,而且我不想复制该文件,因为其中会有很多,有些非常大。
我有一个文件,例如 data.csv ,它正在进入我的服务器,我想将其导入到 data MySQL 数据库中的表使用 mysqlimport . 我的问题是,该文件的数据比我实际想要导入的数据多得多。
这个问题在这里已经有了答案: How do I import an SQL file using the command line in MySQL? (55 个答案) 关闭 4 年前。 我正在尝试
我在 SO 和其他网站上看到了超过 10 个与我的问题相关的答案,但我仍然无法对“mysqlimport”进行以下调用。我希望得到那些知道自己在做什么的人的建议。 调用“mysql.server st
我正在运行 mysqlimport 来加载数据,但遇到空值未加载为 null 的问题。我正在使用 mysql 5.7.23 可以通过创建一个名为 mytable.psv 的文件来重现问题,该文件包含:
我试过: mysqlimport --local --fields-optionally-enclosed-by='\x254' --fields-terminated-
我正在使用 mysqlimport 使用 bash 脚本将 5 个不同的 csv 文件导入到一个公共(public)数据库表中。 File[0]=one File[1]=two File[2]=thr
我是一名优秀的程序员,十分优秀!