天天看点

PostgreSQL 表字段顺序的 "修改"

在某些场景中,用户可能希望在原有字段的某个位置增加一个字段,例如

alter table test add column c1 int after id;

在id字段后面添加一个字段。

在postgresql中,可以通过sql rewrite来做到同样的功能。

但是必须先了解postgresql的物理存储,在pg中,数据是tuple组织的,每个tuple都是固定的storage layout,即字段存储的物理顺序是固定的,解释时是按照pg_attribute中存储的顺序。

那么怎么能做到用户看到的顺序是可以变的呢?

使用简单视图,即rewrite rule.