mysql - AUTO_INCRMENT 有什么意义?

标签 mysql sql syntax

我正在使用 MySQL 学习 SQL,我可能还不知道某些语法,但我只是想知道,如果每当我在表中插入新记录时,我必须指定所有我每次插入的其他列,除了我自动递增的列,例如,第一列设置为自动递增,现在我想插入一条记录: INSERT INTO 表(col2, col3, col4, col5...) VALUES(value2, value3, value4, value5...); 如果我不能指定列并自行增加值,为什么要这样做呢?为什么在这种情况下使用 AUTO_INCRMENT 呢?例如 INSERT INTO table VALUES(incremented_value, value2, value3...) 谢谢。

最佳答案

首先,重要的是要了解标识每一行的整数列非常有用。它们用于外键约束并使行标识变得“简单”(例如,尝试记住 UUID)。

那么你的问题是“为什么自动增量”?原因很简单。如果你能让数据库保证数据的有效性,那么你就有很多优势。最重要的优点涉及竞争条件 - 多个线程同时插入表中。

因为数据库保证值是唯一的并且不断增加,所以您(数据库的用户)不必担心重复。编写数据库的人已经为您完成了这些工作。

关于mysql - AUTO_INCRMENT 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65424765/

相关文章:

php - 使用 PDO 运行查询并根据条件执行大量操作

mysql - SQL 查询从两个表中选择并与第三个表进行比较

mysql - 如何对齐右调整的列

c# - 如何将sql多个LEFT JOIN转换为linq

php - 空输出触发错误

c - 使用函数返回值而不先存储它 - 为什么这种情况很少见?

syntax - @ 符号在 Rust 声明宏中意味着什么?

具有最大长度的mysql聚合

php - foreach 中的 SQL 更新仅更新数字而不更新文本

php - MySQL:如果另一个表包含某个值,则在对字段求和时忽略行