Dam*_*mir 7 postgresql ddl types auto-increment postgresql-9.3
在Postgres 9.3表中,我有一个integer
主键,自动序列递增,但我达到了最大值integer
.如何将其转换integer
为serial
?
我试过了:
ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;
Run Code Online (Sandbox Code Playgroud)
但是相同的数据类型不适serial
用于bigint
.好像我无法转换为serial
?
Erw*_*ter 14
serial
是伪数据类型,而不是实际数据类型.它是一个integer
下面的一些额外的DDL命令自动执行:
NOT NULL
和默认值以从该序列中绘制.细节:
A bigserial
是相同的,围绕一bigint
列建立.你想要bigint
,但你已经实现了.要将现有serial
列转换为bigserial
(或smallserial
),您需要做的只是ALTER
列的数据类型.序列通常基于bigint
,因此相同的序列可用于任何integer
类型.
要将a"变" bigint
成a bigserial
或integer
变成a serial
,你只需要手工完成剩下的工作:
实际数据类型仍为integer
/ bigint
.如果满足a的所有条件,某些客户端(如pgAdmin)将serial
在反向工程CREATE TABLE
脚本中显示数据类型serial
.
归档时间: |
|
查看次数: |
9100 次 |
最近记录: |