MySQL Auto Increment如何工作?

时间:2010-12-30 12:11:59

标签: mysql database auto-increment

我刚刚使用MySQL Query Browser创建了一个新表,并注意到Auto Increment Column下有一个勾号。这有什么作用?

以编程方式添加到数据库时,我只是添加一个数字,然后数据库会自动增加该数字吗?

每当新用户在我的网站上注册时,我希望他们的客户ID(仅限整数)自动递增,因此我不必尝试随机生成唯一编号。

这可以简单地完成吗?

谢谢!

5 个答案:

答案 0 :(得分:16)

  

以编程方式添加到数据库时,我只是添加一个数字,然后数据库会自动增加该数字吗?

是的,这就是auto_increment的工作方式。

  • 每个新行

  • 的值都会递增
  • 该值是唯一的,不可能重复

  • 如果删除了某行,则不会重新分配该行的auto_increment列。

  • 可以使用mySQL函数auto_increment访问最后插入行的LAST_INSERT_ID()值,但在插入查询后立即调用 相同的数据库连接

mySQL Reference

答案 1 :(得分:4)

另外1个, 您也可以插入自己的值(即随机值)。

答案 2 :(得分:1)

启用自动增量时,只要创建新记录,ID就会自动添加。例如:

如果您的表中有1条ID为1的记录并且您添加了新记录,则该ID将自动为2。

答案 3 :(得分:1)

是。 Auto_Increment列的工作方式与他们在锡上的说法相同。提示

  • INSERT时,使用NULL或省略列

  • 使用LAST_INSERT_ID()(或API等价物)获取上次生成的值。

  • 出于安全和业务逻辑的原因,通常更好的形式是不直接使用客户标识符的键值。请考虑使用Hashed / randomized代理客户密钥。

TA

答案 4 :(得分:0)

是的,这就是AUTO_INCREMENT的确切目的。它会查看该表的当前增量值,并自动将该值加1以进入新行。您可以从INSERT语句中省略该字段,MySQL将为您处理每个新行,为每行提供自己的唯一ID。