问题标签 [mysqlimport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 如何将空格分隔的文本文件导入 MySQL?
我需要将较大的 (24MB) 文本文件导入 MySQL 表。每行如下所示:
每个字段后面有一个或多个空格,最后一个字段在换行符之前尾随大约 36 个空格。
如何将这样的文件导入 MySQL?从文档看来, LOAD DATA 期望所有字段都以完全相同的字符串终止。我试过了
但是 MySQL 会将多个空格的序列解释为分隔一个空字段。
有任何想法吗?
linux - 关于 mysqlimport、换行和字符编码(我认为)
首先,一些披露:我不是 Linux 管理员,我的 Linux 管理员也不是程序员。
也就是说,我们有一个 cronjob,它运行一个mysqlimport
命令来导入每天生成的文本文件。我无法控制或参与如何创建此文件。通过反复试验,我们发现文本文件是在 Windows 机器上生成的,因此对于lines-terminated-by
参数我们必须指定\r\n
. 上周它停止正常工作,我们确定这是因为该文件现在是在 Linux 中生成的,所以我们将其更改为\n
. 我的理解(不完全清楚)是这取决于谁生成了决定使用什么平台和编码的文本文件。
我们有一个执行mysqlimport
命令的 shell 脚本。当我们提供正确的编码时,一切都会完美运行。但是由于我们不知道谁将首先创建文本文件,有没有办法确定编码是什么并实现正确的换行符?(并且“编码”在这里是正确的术语吗?)
mysql - mysqlimport 和双引号
我们有一个大的制表符分隔的文本文件(大约 120,000 条记录,50MB),我们正在尝试使用 mysqlimport 将其推入 MySQL。有些字段用双引号括起来,有些则没有。我们正在使用fields-optionally-enclosed-by='\"'
开关,但问题是某些字段值本身包含双引号(表示英寸),因此分隔的字段值可能是“ABCDEF19”。有意义吗?
我们无法控制文件的来源,因此我们无法更改那里的格式。我尝试删除fields-optionally-enclosed-by
开关,但随后导入了围绕值的双引号。
他在值中带有引号的记录变得严重混乱。有没有办法告诉 mysqlimport 某些字段可选用引号括起来,但仍可能包含引号?我们认为也许是全局搜索和替换来逃避字段值中的双引号?或者有什么其他建议?
mysql - 如何在不中断网站的情况下刷新 MySQL 表?
每天一次,我需要使用 ftp 和 mysqlimport 从网上下载一个新文件来更新 MySQL 表。但是,我希望我的网站在 mysqlimport 操作期间保持平稳运行,这需要相当长的时间(这是一张大桌子)。什么是确保用户不等待导入完成的好方法?我正在考虑导入一个临时表,然后重命名它。这是个好计划吗?
mysql - MySqlImport - 导入格式不正确的日期字段
我有一个 csv 文件,其中有一个日期字段,格式如下(在其他字段中):
当我执行 mysqlimport 时,其他字段已正确导入,但该字段仍然存在 0000-00-00 00:00:00
如何正确导入此日期?我是否必须首先对文件运行 sed/awk 命令才能将其转换为正确的格式?如果是这样,那会是什么样子?月份是拼写而不是数字的事实是否重要?
mysql - 如何使用 mysqlimport 累积结果
我喜欢 mysqlimport,它快速且相对易于使用(比 PHP 或 Python 前端用于导入 > 20GB 的数据文件要快得多)。但是我想做以下事情。我有一个看起来像这样的数据文件:
字段为varchar, varchar, int
我希望最终结果存储['cat', 'dog', 11]
为前两个字段。我在 python 中有一个可行的解决方案,但我正在寻找 mysql(import) 中的本机。
mysql - 我可以在不先创建数据库表的情况下将制表符分隔的文件导入 MySQL 吗?
正如标题所说:我有一堆包含数据的制表符分隔的文本文件。
我知道如果我使用“CREATE TABLE”语句手动设置所有表,然后我可以使用“加载数据”或“mysqlimport”将它们导入等待表。
但是 MySQL 有没有办法根据标签文件自动创建表?好像应该有。(我知道 MySQL 可能必须猜测每列的数据类型,但您可以在选项卡文件的第一行中指定。)
mysql - 将文本导入 MySQL:奇怪的格式
我正在使用 mysqlimport 将 .txt 文件中的一些数据导入 MySQL 数据库表。似乎导入正常(没有错误消息),但显示时看起来很奇怪,无法按预期搜索。
这是详细信息。原始文本文件以 UTF-8 格式保存,其记录(在文本编辑器中)看起来像这样。第二个字段包括换行符:
我要导入的数据库表非常简单:
当我导入文件时,这是我使用的命令:
如果我随后要求 MySQL 显示记录,这就是我看到的内容:
因此,看起来好像空格或一些奇怪的编码附加项被添加到文本中。
这是数据库查询的问题:
什么都不返回;也不添加空格:
只有这个命令返回任何东西
谁能猜出会发生什么?我觉得这一定是编码问题,但我无法解决。
- - - 更新 - - - -
好的,我检查了数据库和连接编码。
并show table status
说桌子是latin1_swedish_ci
。
我在“Western (Windows Latin 1)”中重新保存了文本文件(在 Snow Leopard 上使用 TextEdit),并尝试使用与上述相同的命令导入它。但是我仍然有同样的编码问题。
我也试过了,再次没有运气:
- 使用 UTF-8 创建新表并导入现有文件
- 将文本复制并粘贴到我之前导入的另一个文本文件中,然后尝试导入它。
仍然完全困惑:(((
mysql - 如何使用 mysqlimport 读取 mysqldump --databases 的结果
我已经使用成功转储了整个 MySQL 数据库
生成一个不错的 .txt 文件。但是,我看不到如何一次将整个文件读回 MySQL;mysqlimport 似乎一次只需要一张表。
mysql - 在文件名与表名不同的地方使用 mysqlimport
我一直在玩 mysqlimport 并且遇到了文件名必须与表名相同的限制。有没有办法解决这个问题?
我无法重命名该文件,因为它被其他进程使用,我不想复制该文件,因为其中会有很多,有些非常大。
我想使用 mysqlimport 而不是 LOAD INFILE。
编辑:不幸的是,这需要在 Windows 上运行,所以恐怕没有符号链接的技巧。