【问题标题】:Is AUTO-INCREMENT a constraint in MySQL?AUTO-INCREMENT 是 MySQL 中的约束吗?
【发布时间】:2022-11-21 22:11:10
【问题描述】:

我知道这是一个愚蠢的问题。

我尝试在谷歌上搜索相同的内容,但所有答案都解释了 Auto-increment 关键字是什么,但从未真正回答问题。

【问题讨论】:

  • “是约束吗?”- 相对于? (你是在问 MySQL 是否认为它是一个法律上的CONSTRAINT 对象类似于 PRIMARY KEYFOREIGN KEYCHECKDEFAULTUNIQUE 约束?或者如果它“只是”一个列修饰符? - 或者你问的是 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


【解决方案1】:

通常用在 pk 列上,这样插入时会根据之前的 max pk 自动递增。假设你的 pk 是一个数字

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多