如何在oracle中重新排序表的列



我可以在oracle中重新排序列位置吗?

如果是,那么我该怎么做呢?

i'm also try this

ALTER TABLE PANEL ADD ID NUMBER GENERATED BY DEFAULT AS IDENTITY FIRST;

如果您希望重新排序列,因为它们按顺序存储在块中,并且在执行SELECT *时出现,则必须重新创建表。

  1. 创建一个新表并将数据从旧表插入到新表中(使用CREATE TABLE AS SELECT一步完成)
  2. 添加任何索引/约束/授权
  3. 删除旧表
  4. 将新表重命名为旧表名

但是在大多数情况下,实际上不需要这样做,因为物理列顺序和查询的表示顺序是不相关的。它只对SELECT *INSERT VALUES有影响,而不指定列列表,这两种都不是好的编程实践。[我想如果你确实有一个超过255列的表(坏主意),你可以将访问最多的列放在前255列,并将很少访问的列推到后面的位置,以减少行链读取的数量,但更好的解决方案是将表分解并始终保持在255列以下]

最新更新