pg 数据库不支持改变列顺序难受的要命!

2022-08-04 11:37:40 +08:00
 kongkongye

希望后续版本支持吧,有什么好的解决办法吗?

4807 次点击
所在节点    PostgreSQL
37 条回复
NeroKamin
2022-08-04 18:05:01 +08:00
不太明白改变列顺序的需求是怎么来的?
如果是为了展示的话,不是直接调换 select 的顺序就好了吗?
如果是为了改变存储顺序的话,目的又是什么呢?为了优化?
Aloento
2022-08-04 18:35:39 +08:00
强迫症需求一般没人会考虑...纯无效问题
Radeon
2022-08-04 18:58:49 +08:00
自己 Remap 一个 View
Jooooooooo
2022-08-04 19:00:13 +08:00
pg 是开源的吧, 自己提 pr 吧.
tairan2006
2022-08-04 20:01:00 +08:00
mysql 也支持啊,笑死
iseki
2022-08-04 22:00:14 +08:00
@NeroKamin 有些工具不支持调顺序就有点疼

个人经验是实在不行就临时开个视图~~~
PopRain
2022-08-04 23:29:42 +08:00
@wangsd 你仔细看看 SQL Server 的执行过程,创建新表、拷贝数据、改名, 都是 Management studio 客户端做的,并不是数据库自身的功能。 之前好像有改字典表列顺序的方法,但是这个是奇技淫巧,不安全
PopRain
2022-08-04 23:30:59 +08:00
改顺序是合理需求,新加的字段和有逻辑关系的放在一起,看起来舒服。。。。
Kisesy
2022-08-04 23:41:57 +08:00
我记得 sqlite 是复制一个表,然后重建的
EminemW
2022-08-05 00:44:26 +08:00
这么离谱的需求,你 select 的时候按自己喜欢的顺序查不就好了
weiqk
2022-08-05 00:55:29 +08:00
@Kisesy pg 也是复制然后重建
seanzxx
2022-08-05 01:29:28 +08:00
@ufan0 客户端就一般都支持跳板机呀
cccer
2022-08-05 09:37:07 +08:00
数据库列顺序会直接影响数据存放位置和格式(数据 4bit 对齐和合并),改列顺序只能删表重建。
其他数据库只是后台做了这个事,PG 需要自己显式的写 SQL 。
Huelse
2022-08-05 10:17:58 +08:00
我认为这是伪需求,不合理且浪费时间,改顺序仅仅是方便开发者看,而不是提高服务效率或增加功能性。

而且 select 时就可以自行排序。
kongkongye
2022-08-05 10:39:10 +08:00
@Huelse 很多时候都直接打开表看下内容,如果字段顺序不重要,那假设每次打开表都给你随机排序,比如这次打开 100 个字段的表 id 跑后面去了,看着是不很乱,很影响心情与效率?
815979670
2022-08-05 13:07:44 +08:00
提到这个 sqlite 不支持字段备注也很难受
lolizeppelin
2022-08-31 14:47:07 +08:00
改变列顺序,要改整个表的数据存放, 统计数据也要重建

话说 mysql 怎么实现的?对外做了映射?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX