未分類

ALTER TABLE RENAME COLUMN でエラーが発生する

投稿日:

こんなエラーが発生しています。

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

 

このエラーは、MySQLのバージョンによる原因のようです。

ALTER TABLE RENAME COLUMNは、MySQL8.0から利用できる構文のようです。

自身のバージョンを知らない人は、確認してみてください。

mysql --version

 

対策

ALTER TABLE CHANGEを使用します。

ALTER TABLE RENAME COLUMNの場合は、カラム名だけの変更が可能でしたが、

ALTER TABLE CHANGEの場合は、カラム名の変更というより、カラムの再定義といった感じです。

そのため、制約等も再度書き直す必要があります。

以下は、ALTER TABLE CHANGEの例です。

ALTER TABLE テーブル名 CHANGE 旧カラム名 新カラム名 int(11) NOT NULL COMMENT 'コメント';

 

また、NOT NULL制約やコメントは必須ではないため、省略してもエラーにはなりませんが、

型の指定を省略すると、エラーになります。

 

なぜ間違えるのか

カラム名の変更(ALTER TABLE RENAME COLUMN)は、MySQLのバージョン8.0以降でないと使用できないようですが、

テーブル名の変更(ALTER TABLE RENAME)は使用できるため、間違えてしまう場合が多いのだと思います。

とてもややこしいですね...。

 

-未分類

Copyright© エンジニアの階段 , 2019 All Rights Reserved Powered by STINGER.