如何在不改变PostgreSQL中的类型的情况下向列表添加列?

jla*_*rcy 5 postgresql

我正在使用PostgreSQL 9.5,我有一个TYPE,它描述了一组列:

CREATE TYPE datastore.record AS
   (recordid bigint,
    ...
    tags text[]);
Run Code Online (Sandbox Code Playgroud)

我在这个TYPE上创建了许多表:

CREATE TABLE datastore.events
OF datastore.record;
Run Code Online (Sandbox Code Playgroud)

现在我想在一个表中添加一个列,该表依赖于此TYPE而不更新TYPE.我认为这是不可能的,因此我想知道是否有办法从这个TYPE取消绑定我的表而不丢失任何数据或将表复制到临时表中?

kli*_*lin 6

not of为此目的有一个特殊选择.根据文件:

NOT OF - 此表单将类型表与其类型分开.

所以:

alter table my_table not of;
alter table my_table add new_column integer;
Run Code Online (Sandbox Code Playgroud)