tin*_*lyx 8 postgresql alter-table identity postgresql-10
我正在阅读有关新的Postgres 10 标识列的信息,并了解了如何使用它SERIAL
在CREATE TABLE
.
是否也可以向现有表添加标识列?
例如,使用旧SERIAL
列,我可以执行以下操作:
ALTER TABLE sourceTable ADD COLUMN ogc_fid SERIAL;
Run Code Online (Sandbox Code Playgroud)
对于标识列,是否有与上述相同的内容?我试过:
ALTER TABLE sourceTable ADD COLUMN ogc_fid GENERATED BY DEFAULT AS IDENTITY;
Run Code Online (Sandbox Code Playgroud)
但是得到了一个错误:
错误:“BY”第 1 行或附近的语法错误:...R TABLE sourceTable ADD COLUMN ogc_fid GENERATED BY DEFAULT
我正在考虑用我的脚本中的SERIAL
列替换列IDENTITY
,只是想检查这是否可行。
ype*_*eᵀᴹ 12
您还需要声明列的类型(INT
或BIGINT
或
SMALLINT
):
ALTER TABLE sourceTable
ADD COLUMN ogc_fid int -- int or bigint or smallint
GENERATED BY DEFAULT AS IDENTITY;
Run Code Online (Sandbox Code Playgroud)
另外一定要使用最新的点版本。由于IDENTITY
最近才添加,在 Postgres 10.2 之前存在影响此特定命令的错误。请参阅:
如何将 PostgreSQL 10 标识列添加到包含行的现有表中?
归档时间: |
|
查看次数: |
7449 次 |
最近记录: |