mysql 加载数据内文件,不带字段终止

标签 mysql sql

大家好,我需要将文件加载到表中

我用

LOAD DATA INFILE 'D:....example.txt' INTO TABLE test_table
CHARACTER SET utf8
LINES TERMINATED BY '\r\n';

我的文件看起来..

   4STPS      0000000480000015426  20040425            42.480060981876  20150325  11
   4STPS      0000000480000015458  20040425           110.240060981880  20150325  11
   4STPS      0000000480000015492  20040425           242.500060981883  20150325  11
   4STPS      0000000480000015583  20040510            92.510060981888  20150325  11
   4STPS      0000000480000015584  20040510            92.490060981889  20150325  11
   4STPS      0000000480000015592  20040510            87.140060981890  20150325  11
   4STPS      0000000480000015631  20040510           117.500060981896  20150325  11

我的 table 是...

CREATE TABLE `test_table` (
  `me` varchar(4) DEFAULT NULL,
  `group_b` varchar(10) DEFAULT NULL,
  `agent` varchar(9) DEFAULT NULL,
  `element` varchar(10) DEFAULT NULL,
  `ini_vig` decimal(8,0) DEFAULT NULL,
  `amount` decimal(10,4) DEFAULT NULL,
  `recive` varchar(8) DEFAULT NULL,
  `ven_rbo` decimal(8,0) DEFAULT NULL,
  `ado` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

当我执行时出现此错误错误代码:1406。第 1 行的列“me”的数据太长

我所做的是计算字段之间的空格是否为字母数字,数字字段仅在字段之间添加。

我无法更改文件结构我如何更改表格以便您可以保存信息?

最佳答案

您的LOAD DATA INFILE 目前仅看到一列

您需要执行以下操作

步骤 01:创建单列表以加载批量数据

use test
DROP TABLE bulkdata;
CREATE TABLE bulkkdata
(
    id  INT NOT NULL AUTO_INCREMENT,
    txt CHAR(84),
    PRIMARY KEY (id)
);

第02步:加载单列批量数据

LOAD DATA INFILE 'D:....example.txt' INTO TABLE bulkdata
CHARACTER SET utf8
LINES TERMINATED BY '\r\n' (txt);

第 02 步:使用 SUBSTR()txt 字段中提取字段

INSERT INTO test_table (me,group_b,agent,element,...)
SELECT
    SUBSTR(txt,1,4),
    SUBSTR(txt,5,10),
    SUBSTR(txt,15,9),
    SUBSTR(txt,24,10),
    ...
FROM bulkdata;

尝试一下!!!

关于mysql 加载数据内文件,不带字段终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404829/

相关文章:

php - 尝试将函数的结果保存在 php 上

mysql - 如何编写AJAX代码将PHP错误打印到alert()框?

php - 导入带下标字符的excel文件

php - mysql-当我使用子查询时,为什么要花这么多时间来执行?

sql - 您会推荐哪些优化工作来加速 PostgreSQL 中的查询执行?

python - SQL语句错误中未使用所有参数

mysql - 选择两个日期之间的事件的最佳 SQL 查询

mysql - 选择最大值,分组依据并显示不在分组依据子句中的其他列

sql - 选择具有少数唯一列的记录,同时优先选择非空值而不是另一列

mysql - SQL,如何读出数据并按这种方式排序?