BIGSERIAL 数据类型存储 BIGINT 数据类型的顺序整数(在插入新行时由数据库服
务器自动指定)。BIGSERIAL 数据类型的行为与 SERIAL 数据类型相似,但范围更大。
缺省 BIGSERIAL 起始号为 1,但可以在创建或改变表时指定初始值 n。n 值必须为
1 至 9,223,372,036,854,775,807 范围内的正整数。如果将值零 (0) 插入到 BIGSERIAL
列,使用的值是 BIGSERIAL 列中已存在的最大正值 + 1。如果您插入任何非零值,该值
会原样插入。
由于所有串行数据类型都如此,因此 BIGSERIAL 数据类型会存储您提供的负值。然
而,生成的值通常是从 1 到 2
63 -1 的正数。
BIGSERIAL 数据类型可以存储从 -(2
63 -1) 到 2
63 -1 的值,即 –
9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 的 8 个字节的值。
一个表只能有一个 SERIAL 列,但是它可以具有一个 SERIAL 列和一个 SERIAL8 列
或 BIGSERIAL 列。
将 SERIAL8 和 BIGSERIAL 与 INT8 或 BIGINT 配合使用
GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 87 -
对 INT8 和 BIGINT 有效的所有算术运算符(例如:+、-、* 和 /)以及对 INT8
和 BIGINT 有效的所有 SQL 函数(例如,ABS、MOD 和 POW 等等)对 SERIAL8 和
BIGSERIAL 值同样有效。
适用于 INT8 和 BIGINT 的数据转换规则也适用于 SERIAL8 和 BIGSERIAL,但对于
SERIAL8 或 BIGSERIAL 具有 NOT NULL 约束。
一个表的 SERIAL8 或 BIGSERIAL 列的值可存储在另一个表的 INT8 或 BIGINT 列
中。但是,在第二个表中,INT8 或 BIGINT 值不遵从原始 SERIAL8 或 BIGSERIAL 列的
约束。