请问 MYsql 模式下 自增列可以是哪些数据类型。decimal(15,0) 没有小数点的浮点数 可以吗?
1 个赞
根据文档库中的信息,在 OceanBase 数据库的 MySQL 模式下,自增列的数据类型有以下要求:
-
数据类型:当前仅支持整数类型的数据列可以设置为自增列(
AUTO_INCREMENT
),并且特别指出BOOL/BOOLEAN
类型除外。具体来说,整数类型包括:TINYINT
SMALLINT
MEDIUMINT
-
INT
或INTEGER
BIGINT
-
关于
decimal(15,0)
类型:虽然DECIMAL
和NUMERIC
是定点类型的一种,并且在某些情况下可以表现得像整数,但它们并不属于上述明确列出的整数类型。因此,decimal(15,0)
不能直接用作自增列的数据类型。
为了确保自增列的稳定性和性能,建议使用 bigint
或 bigint unsigned
类型,这是由于 OceanBase 数据库中自增列值可能会出现“跳变”现象,而较大的数值范围可以帮助避免因值耗尽而导致的问题(参考片段标题: Schema 规范 → [强制][质量] OceanBase 数据库自增列类型必须使用 bigint 或 bigint unsigned,禁止使用 int)。
综上所述,在 MySQL 模式下,自增列不可以是 decimal(15,0)
这样的定点类型,应该选择合适的整数类型作为自增列的数据类型。
更多信息请查看:
1 个赞