CockroachDB支持各种有符号整数数据类型。

要自动生成全局唯一值,请使用UUIDSERIAL数据类型。

名称和别名

Name Allowed Width Aliases
INT 64-bit INTEGER
INT8
INT64
BIGINT
INT4 32-bit None
INT2 16-bit SMALLINT
BIT 1-bit None
BIT(n) n-bit None

语法

数值文本可以作为INT类型的输入。 例如: 42, -1234, or 0xCAFE

大小

不同的整数类型对允许值的范围设置不同的约束,但是无论类型如何,所有整数都以相同的方式存储。较小的值比较大的值占用更少的空间(基于数值,而不是数据类型)。

您可以使用BIT(n)类型,n的取值范围为1到64,根据相应的二进制值约束整数的大小。例如,BIT(5)允许大小为31,因为它对应于五位二进制整数11111,但不允许32,因为它对应于六位二进制整数'100000`, 长了1位。

默认情况下,BIT值以十进制格式输入并显示,与所有其他整数一样,而不是二进制格式。 另请注意,BIT等同于BIT(1)

示例

> CREATE TABLE ints (a INT PRIMARY KEY, b SMALLINT, c BIT(5));
> SHOW COLUMNS FROM ints;
+-------+----------+-------+---------+-------------+
| Field |   Type   | Null  | Default |   Indices   |
+-------+----------+-------+---------+-------------+
| a     | INT      | false | NULL    | {"primary"} |
| b     | SMALLINT | true  | NULL    | {}          |
| c     | BIT(5)   | true  | NULL    | {}          |
+-------+----------+-------+---------+-------------+
(3 rows)
> INSERT INTO ints VALUES (1, 32, 32);
pq: bit string too long for type BIT(5) (column "c")
> INSERT INTO ints VALUES (1, 32, 31);
INSERT 1
> SELECT * FROM ints;
+---+----+----+
| a | b  | c  |
+---+----+----+
| 1 | 32 | 31 |
+---+----+----+
(1 row)

支持的转换

INT值可以强制转换为以下任何数据类型:

Type Details
DECIMAL ––
FLOAT 如果'INT`值大于2 ^ 53,则会丢失精度
BOOL 0转换为false; 所有其他值转换为true
DATE 转换为自Unix时间至今的日子(1970年1月1日)
TIMESTAMP 转换为自Unix时间至今的日子(1970年1月1日)
INTERVAL 转换为微秒
STRING ––

See Also

Data Types