【发布时间】:2018-08-12 09:15:30
【问题描述】:
我需要将文件内容加载到表格中。该文件包含用逗号分隔的文本。这是一个非常大的文件。我不能像这样更改已经给我的文件。
12.com,128.15.8.6,TEXT1,no1,['128.15.8.6']
23com,122.14.10.7,TEXT2,no2,['122.14.10.7']
45.com,91.33.10.4,TEXT3,no3,['91.33.10.4']
67.com,88.22.88.8,TEXT4,no4,['88.22.88.8', '5.112.1.10']
我需要将文件加载到一个四列的表中。因此,例如,上面的最后一行应该在表格中如下:
table.col1: 67.com
table.col2: 88.22.88.8
table.col3: TEXT3
table.col4: no3
table.col5: ['88.22.88.8', '5.112.1.10']
使用 MySQL 工作台,我创建了一个包含五列的表,所有列的类型均为 varchar。然后我运行以下 SQL 命令:
LOAD DATA INFILE '/var/lib/mysql-files/myfile.txt'
INTO TABLE `mytable`.`myscheme`
fields terminated BY ','
最后一列字符串(其中包含我不想分隔的逗号)会导致问题。
Error:
Error Code: 1262. Row 4 was truncated; it contained more data than there were input columns
请问我该如何解决这个问题。
【问题讨论】:
-
延长列的长度
-
文件中括号之间的字符串数量不可预测。我发布的是一个示例,但括号内的字符串数量不同。出于多种原因,我想将它们视为单个列。此字段的多列不适合我的情况。
-
您使用逗号分隔列,因此这些“括号之间的字符串数量不可预测”会产生导入错误.. 有一些技巧可以避免这种情况.. 但不仅仅是基于加载数据命令。 .
-
@scaisEdge 谢谢。即使与加载命令无关,您也可以发布任何可以提供帮助的技巧。
-
@user9371654 ..我已经发布了一个我在类似情况下使用的技巧的aswer ..
标签: mysql sql database database-design datatable