mitsuのぶろぐ

基本的にはプログラミングの話のつもり。

PostgreSQLではcolumnの順番は変えれない

元ネタとしては現職でMySQL既存テーブルを追加するときに after {既存カラム} みたいな書き方が既存のSQLにあったので、それに倣って自分も記述しようと思ったところでした。

チームのメンバーとそれについてワイワイしてたときに「そういえばPostgreSQLだとカラムの順番って変更できないですよね」と言われてそうなんだ!!!と初めて知りました。

PostgreSQLのサイトにも書いていた Alter column position/ja - PostgreSQL wiki

なるほどいくらか回避というか順番を変更する手段はなくはないけど、どうにもぱっとしないなと思いました。

「なぜカラムの順番が変えれないのか」みたいなものが書かれてたものはありましたが、あんまり公式見解のようなものは見つけれませんでした。

dba.stackexchange.com

確かにDBのviewerなどを経由したときなどにある程度見やすい形で見えたら嬉しいなというところで順番がいじれたほうがよい気がしますが、

実際のアプリケーションのコードなどで SELECT * FROM {TABLE} なんてやらないしな、とも思うとそこまで厳密に必要はないか、と思いました。

一方で内部構造的にカラムの順番によって処理の速度などが変わるのでは?と思うとこちらからカラムの順番は変えれたほうがいいのでは?とも思いました。

そのあたりはまた調べてみたいです。