【发布时间】:2022-11-21 22:11:10
【问题描述】:
我知道这是一个愚蠢的问题。
我尝试在谷歌上搜索相同的内容,但所有答案都解释了 Auto-increment 关键字是什么,但从未真正回答问题。
【问题讨论】:
-
“是约束吗?”- 相对于? (你是在问 MySQL 是否认为它是一个法律上的
CONSTRAINT对象类似于PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT和UNIQUE约束?或者如果它“只是”一个列修饰符? - 或者你问的是 MySQL 是否完全支持它? (在这种情况下是的,它是) -
不。
AUTO_INCREMENT只是一种在数据库级别生成值的机制。在 SQL 标准中,这称为IDENTITY GENERATED BY DEFAULT。 -
@TheImpaler 您可以使用
UPDATE来替换/覆盖AUTO_INCREMENT列中的值吗? (在 SQL Server 中,如果不先使用SET IDENTITY_INSERT tableName ON|OFF就无法插入或编辑IDENTITY列,我很好奇 MySQL 是如何比较的...) -
该标准没有规定更新主键的限制。您可以根据需要进行操作。然而,一些数据库引擎对其施加了一些[相当人为的]限制。另一方面,您可能在谈论另一个选项
IDENTITY GENERATED ALWAYS;这个不能更新,因为数据库中的值优先。
标签: mysql sql database constraints