mysql加载数据填充自动增量多次增量
多次执行同一文件时,自动递增值将错误。 我的文件是sample.csvmysql加载数据填充自动增量多次增量,mysql,Mysql,多次执行同一文件时,自动递增值将错误。 我的文件是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/n
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开始。为什么
我的桌子是空的
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
如果可能的话,千万不要依赖自动增量列来获得某些值,因为您描述的相同问题可能会发生。每次在表中插入时,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;
使用正确的自动增量,而不是1。更多信息请参见此处:如果可能,请不要依赖自动增量列来获得某些值,因为您描述的相同问题可能会发生。每次在表中插入时,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;
使用正确的自动增量,而不是1。更多信息请点击这里:我终于得到了答案 我们必须把它的引擎从INNODB换成MyISAM
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=MyISAM DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
最后我得到了答案 我们必须把它的引擎从INNODB换成MyISAM
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=MyISAM DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
我尝试了这个SQLyog社区-MYSQL GUI v 11.27(64位)(c)2001-2013 Webyog Inc当我一次执行该文件时,最后一个id值将是8,其自动增量不是9。它显示为16,当我重新执行同一个文件时,id从16开始。为什么???我尝试了这个SQLyog社区-MYSQL GUI v 11.27(64位)(c)2001-2013 Webyog inc当我一次执行该文件时,最后一个id值将为8,其自动增量不是9。它显示为16,当我重新执行同一文件时,id从16开始。为什么?我必须依赖自动增量。我不能像这样传递身份证(身份证、姓名、电话、地址);如果使用ALTER TABLE tablename AUTO_INCREMENT=1;我必须每次(不止一次)执行此值才能执行文件。我必须依赖于自动增量。我不能像这样传递身份证(身份证、姓名、电话、地址);如果使用ALTER TABLE tablename AUTO_INCREMENT=1;我必须每次(不止一次)执行此值才能执行文件