それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

カラム名の変更。mysqlはちょっと癖がある

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の標準仕様になかった所為だろうか。