gpt4 book ai didi

mysql load data infile auto_increment 倍增

转载 作者:行者123 更新时间:2023-11-30 22:09:14 25 4
gpt4 key购买 nike

多次执行同一个文件时,自动增量值将是错误的。我的文件是 sample.csv

name,phone,address
a,9401003026,dsa
b,9658746542,fsa
c,9865742310,hgfh
d,9865869537,hf
e,9401003026,hf
s,9658746542,hf
h,9865742310,hf
j,9865869537,hf

我的查询是

LOAD DATA LOCAL INFILE '/home/anson/AnsonBackup/python/newtest/sample.csv'    
INTO TABLE `sample` COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n' IGNORE 1 LINES
(named,phone,address);

如果我执行一次,id 的值将为 8,但是当我重新执行同一个文件时,id 从 16 开始..为什么????

我的 table 是

CREATE TABLE `sample` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`named` VARCHAR(30) DEFAULT NULL,
`phone` VARCHAR(30) DEFAULT NULL,
`address` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=latin1

最佳答案

如果可能,永远不要依赖 auto_increment 列来获得特定值,因为您描述的相同问题可能会发生。每次在表中插入时,id 都会增加。

如果需要,您也可以在 csv 中包含 id 字段,因此您的导入语句为:

LOAD DATA LOCAL INFILE '/home/anson/AnsonBackup/python/newtest/sample.csv'    
INTO TABLE `sample` COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n' IGNORE 1 LINES
(id, named, phone, address);

或者,如果您不能这样做,则必须重置计数器,如下所示:

ALTER TABLE tablename AUTO_INCREMENT = 1;

使用正确的 auto_increment 而不是 1。更多信息请参见:related answer

关于mysql load data infile auto_increment 倍增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40659672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com