POSTGRESQL 表调整字段顺序

本文介绍了如何在POSTGRESQL中调整表的字段顺序,通过创建新表并迁移数据,然后使用RENAME操作完成。过程中需要注意数据安全,确保操作无误。
摘要由CSDN通过智能技术生成
在MySQL数据库里,在添加字段时可以添加到表的任意位置, 那么在POSTGRESQL里我们是否可以实现呢?
答案是肯定可以的。
PG的语法里并没有类似AFTER, BEFORE的子句。
总结:
第一种方法失败,甚至能导致数据库自动重启。
第二种方法可行,但如果数据量较大,业务停止的时间就会加长。
哪果数据量较小,可以考虑第二种方法。但如果数据量大,停机就没有办法接受了, 可以让业务修改代码来完成需求了。
尝试方法一:
修改pg_attribute中的表字段位置:
postgres=# create table t_col(id int4, name varchar(9));
CREATE TABLE                                          ^
postgres=# insert into t_col values(1,'a');
INSERT 0 1
postgres=# insert into t_col values(2,'b');
INSERT 0 1
postgres=# select attrelid,attname,attnum from pg_attribute where attrelid = (select relfilenode from pg_class where relname = 't_col');
 attrelid | attname  | attnum 
----------+----------+--------
   353681 | tableoid |     -7
   353681 | cmax     |     -6
   353681 | xmax     |     -5
   353681 | cmin     |     -4
   353681 | xmin     |     -3
   353681 | ctid     |     -1
   353681 | id       |      1
   353681 | name     |      2
(8 row
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值