mysql - 当我尝试插入数据时发生了一些奇怪的事情。数据不会插入

标签 mysql load-data-infile

我这里有个问题。我有大约 13K 行数据想要放入 mysql 数据库中。我注意到,如果该行“短”,则插入将会发生,但如果它很长,则会失败。我一整天都在试图解决这个问题,但我准备放弃了。

这是表结构。

CREATE TABLE `concordance` (
  `term` text NOT NULL,
  `ref` text NOT NULL,
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这是一行,可以很好地插入。

"Abelmeholah"*"JDG 7:22 KI1 4:12 19:16"

这是失败的一大行。

"A"*"GEN 6:16 30:11 EXO 4:2,26 12:45 28:34 30:2 38:26 39:26 LEV 20:27 21:14 25:11 NUM 28:21,29 29:10 DEU 2:21 8:8-9 9:2 11:12,27 22:30 23:2 26:5 28:50 JDG 9:54 13:6 KI2 11:5 CH2 23:4 PSA 22:30 37:16 68:5 74:5 91:7 92:1,6 97:3 101:4 107:34 112:5 PRO 1:5 6:12,17,19,33 9:13 10:1 11:1,13,16 12:2-4,8,10,14,16,23 13:1-2,5,17,22 14:5-6,16,25,30 15:1,4-5,12-13,18,20,23 16:9-11,28-29 17:2,4,8,10,17-18,22-23,25 18:2,6-7,16,19-20,24 19:5,9,13,19,24 20:8,26 21:14,22,28-29 22:1,3 24:5 25:11,18,26 26:3,28 27:3,12,15 28:3,17,20 29:5,11,19,23 30:30-31 ECC 3:2-8 6:2 7:1 10:2,14,19 SOL 1:13 4:12,15 ISA 8:12 21:2,8 27:2 42:3 60:22 62:12 65:3 66:6 JER 2:24 3:21 4:11 5:30 11:9,16 17:12 20:15 25:31,36 31:15,22 48:3 50:22,35-38 51:54 EZE 5:12 17:3 19:2 21:9 36:26 DAN 7:10 JOE 2:2-3 AMO 7:8 8:2 HAB 3:1 ZEP 1:16 MAL 1:6 MAT 5:14 7:18 11:7-9 12:20,35 13:57 16:4 21:28 MAR 6:4 12:1 LUK 2:24,32 6:45 7:24-26 8:5 10:30 13:6 14:16 15:11 19:12 20:9 JOH 1:42 3:27 9:11 13:34 16:16-19,21 19:36 ACT 3:22 7:37 10:2 11:5 CO1 7:15 GAL 5:9 TI1 3:2 TIT 3:10 HEB 8:2,13 JAM 1:8 REV 6:6"

非常感谢任何帮助。

<小时/>

这是我用来将数据导入数据库的

LOAD DATA LOCAL INFILE '/data.txt' 
INTO TABLE concordance 
FIELDS TERMINATED BY '*'
<小时/>

我刚刚尝试加载上面的大数据集,这是错误: mysql> 将数据 INFILE '/tmp/data.txt' 加载到以 '*' 结尾的表索引字段中; 错误 1261 (01000):第 1 行不包含所有列的数据

<小时/>

这是有效的代码:

LOAD DATA INFILE '/tmp/f.txt'
INTO TABLE `concordance`
FIELDS TERMINATED BY '*'
ENCLOSED BY '"'
(`term` , `ref`);

最佳答案

您的表创建查询是错误的:

#1072 - Key column 'seq' doesn't exist in table

除此之外,假设您的查询是“.... PRIMARY KEY (id) ....”,我可以毫无问题地插入两行数据。也许你应该发布你的代码。

<小时/>

编辑:

尝试以下查询:

LOAD DATA INFILE '/data.txt' INTO TABLE `concordance` FIELDS TERMINATED BY '*'
    ENCLOSED BY '"' LINES TERMINATED BY '\r\n'(
    `term` , `ref` 
)

关于mysql - 当我尝试插入数据时发生了一些奇怪的事情。数据不会插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1570801/

相关文章:

java - 使用 JPA 一对一映射以及 mysql 复合主键插入数据

MySQL 加载数据错误(错误代码 : 2 - "No such file or directory")

mysql - 在 LOAD DATA INFILE 之前或之后定义 PK

mysql - 从 csv 加载数据时如何忽略/跳过 LOAD DATA INFILE 中的无效数据行。

mysql - 如何将文件中的时间戳数据上传到mysql

mysql - 如何使用循环概念在mysql查询中插入多条记录100次,其中包含整数和字符串数据?

php - password_hash、Password_default 导致问题

mysql - 为什么我的数据被截断?

php - 如何在php和mysql数据库中正确进行字符编码

mysql - 群组消息 - MySQL