id不自动递增和重复记录

时间:2017-08-17 09:17:22

标签: mysql

这是我的表tb_currency_minimum_amount enter image description here

当我使用

插入记录时
INSERT IGNORE INTO tb_currency_minimum_amount ( id, currency_id, payment_method, minimum_amount) VALUES (NULL, 1, 16, 0.02)

一次又一次地创建一个新条目

ID为32,33,34的行相同

我将它指定为32而不是27并忽略重复

2enter image description here

3 个答案:

答案 0 :(得分:1)

AUTO_INCREMENT列的目的是确保表中行的唯一标识符。

它只是一个实现细节,它使用连续的整数值。这些值不是连续的要求。您的代码不得依赖于连续的值。

当没有提供该列的值时,每个AUTO_INCREMENT语句都会增加INSERT的值,无论是否使用更新的值(查询创建新行) (它由于重复的键约束而失败,或者由于ON DUPLICATE KEY而更新了现有的行。)

答案 1 :(得分:0)

自动增量计算每个记录+1。但它不检查其他列是唯一的还是重复的。 在您的自动增量的id列中,我没有看到任何重复项。

您能详细说明您尝试存档的目的吗?

答案 2 :(得分:-1)

  

它正在添加为id 32而不是27并忽略重复

如果我理解你的问题,你应该使用 SQL SELECT DISTINCT语句。

SELECT DISTINCT语句用于仅返回不同的(不同的)值。

在表格中,列通常包含许多重复值;有时您只想列出不同的(不同的)值。

SELECT DISTINCT语句用于仅返回不同的(不同的)值。