自增列的数据类型哪些

请问 MYsql 模式下 自增列可以是哪些数据类型。decimal(15,0) 没有小数点的浮点数 可以吗?

1 个赞

@论坛小助手

1 个赞

根据文档库中的信息,在 OceanBase 数据库的 MySQL 模式下,自增列的数据类型有以下要求:

  • 数据类型:当前仅支持整数类型的数据列可以设置为自增列(AUTO_INCREMENT),并且特别指出 BOOL/BOOLEAN 类型除外。具体来说,整数类型包括:

    • TINYINT
    • SMALLINT
    • MEDIUMINT
    • INTINTEGER
    • BIGINT
  • 关于 decimal(15,0) 类型:虽然 DECIMALNUMERIC 是定点类型的一种,并且在某些情况下可以表现得像整数,但它们并不属于上述明确列出的整数类型。因此,decimal(15,0) 不能直接用作自增列的数据类型。

为了确保自增列的稳定性和性能,建议使用 bigintbigint unsigned 类型,这是由于 OceanBase 数据库中自增列值可能会出现“跳变”现象,而较大的数值范围可以帮助避免因值耗尽而导致的问题(参考片段标题: Schema 规范 → [强制][质量] OceanBase 数据库自增列类型必须使用 bigint 或 bigint unsigned,禁止使用 int)。

综上所述,在 MySQL 模式下,自增列不可以是 decimal(15,0) 这样的定点类型,应该选择合适的整数类型作为自增列的数据类型。

更多信息请查看:

  1. 定义自增列
  2. OceanBase 数据库在 MySQL 模式租户下的扩展功能
  3. 数据分布
  4. 分区概述
  5. Schema 规范
  6. 与 MySQL 兼容性对比
1 个赞