MySQLを触っていてカラム名を変更しようとした。なぜかカラムのデータ型を指定しないとうまくいかない。うーん
カラム名(列名)変更する構文
alter table TABLE_NAME change OLD_COL NEW_COL DATA_TYPE_OF_NEW_COL;
これを実際に実行した例はこちら
カラム名を変更する例
mysql> alter table book change isbn isbn13 varchar(13); Query OK, 106905 rows affected (4.05 sec) Records: 106905 Duplicates: 0 Warnings: 0
型指定が無くてうまくいかなかった例
mysql> alter table book change isbn isbn13; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
ま、型指定すればウマくので良いね。
ちなみに
PostgreSQLでは次のようになる。
alter table TABLE_NAME rename column COL_NAME to NEW_NAME;
そもそも列名変更がSQLの標準仕様になかった所為だろうか。