"Alter column position" in the PostgreSQL Wiki says:
PostgreSQL currently defines column
order based on the attnum
column of
the pg_attribute
table. The only way
to change column order is either by
recreating the table, or by adding
columns and rotating data until you
reach the desired layout.
That's pretty weak, but in their defense, in standard SQL, there is no solution for repositioning a column either. Database brands that support changing the ordinal position of a column are defining an extension to SQL syntax.
One other idea occurs to me: you can define a VIEW
that specifies the order of columns how you like it, without changing the physical position of the column in the base table.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…