gpt4 book ai didi

MYSQL - 如何避免主 ID 浪费?

转载 作者:行者123 更新时间:2023-11-29 03:42:59 27 4
gpt4 key购买 nike

如何在通过多个加载语句插入记录时避免跳过主 ID?

我通过 LOAD 语句将包含 150 条记录的文件插入到表中。

插入后表中最后一个primary id为150。

现在,当我通过加载语句插入另一个包含 100 条记录的文件时,分配给第一条记录的主 ID 是 251,而不是 151。

如何避免这些主 ID 浪费?

更多信息:例如:

mysql> desc test_data;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | UNI | NULL | |
| image | varchar(255) | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

我的加载语句 -

 LOAD DATA LOCAL INFILE '~/test_2.dat' 
INTO TABLE test_data
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
set created_at=CURRENT_TIMESTAMP;

文件 test_2.dat 中的示例数据:

|Peter|peter.jpg
|sam|sam.jpg
|radnor|radnor.jpg
|bruce|bruce.jpg

这是加载该文件后的表结构。

mysql> show create table test_data;

| test_data | CREATE TABLE `test_data` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`image` varchar(255) NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1 |

现在,此表中的 max(id) 为 4。但为什么 AUTO_INCREMENT 值现在设置为“8”?不应该设置为“5”吗?

最佳答案

您可以在主 ID 上将 AUTO_INCREMENT 标记为 true 以在加载期间跳过它们。更多信息有助于更好地回答。

关于MYSQL - 如何避免主 ID 浪费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10982509/

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