我对PostgreSql有点困惑和新手,我认为serial = integer和bigserial = bigint,所以当我创建一个带有PK是连续的。
答案 0 :(得分:1)
如the PostgreSQL 9.4 docs for Data Type SERIAL中所述,使用CREATE SEQUENCE tablename_colname_seq
隐式创建序列而不使用任何其他参数。
documentation for CREATE SEQUENCE
说:
可选子句 MAXVALUE maxvalue 确定序列的最大值。如果未提供此子句或指定了 NO MAXVALUE ,则将使用默认值。对于升序和降序序列,默认值分别为2 ^ 63-1和-1。
因此,记录的行为是使用您正在查看的最大值创建序列。
答案 1 :(得分:0)
序列和列是两个不同的东西。序列可以返回大于int4列可以存储的整数。当您指定SERIAL
或BIGSERIAL
时,PostgreSQL会将其粗略地翻译为:
SERIAL
是一种便利,但没有实际的列类型SERIAL
。