前提
既存テーブル my_tags へのカラム追加を試みているのですが、BIG INT のときにエラーになります。
実現したいこと
BIG INT のカラムを追加したいです。
そしてなぜ、BIG INT のときにエラーになるのか知りたいです
発生している問題・エラーメッセージ
該当のソースコードを実行して次のエラーメッセージが表示されます。
ERROR
1#1064 - 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 'BIG INT(20) UNSIGNED' at line 1
該当のソースコード
こちらがエラーメッセージを生じさせるソースコードです。
SQL
1ALTER TABLE my_tags ADD test_col BIG INT(20) UNSIGNED;
試したこと1
当該エラー 1064 および BIG INT が関係するエラーにまつわる情報として、次の2つの記事を拝読しました。
Why do I keep getting this eror: ERROR 1064 (42000)?
https://stackoverflow.com/questions/59226902/why-do-i-keep-getting-this-eror-error-1064-42000
【MySQL】ERROR 1064 (42000)を解消する
https://qiita.com/niwa1903/items/c8d9eaff46fcd08dacc5
「予約語のケース」と「ハイフンを含むケース」なので当質問には該当しないだろうとは思いつつ、一応掲載の解決策である「バッククォートで囲む方法」を試し次のように実行しました。
SQL
1ALTER TABLE `my_tags` ADD `test_col` BIG INT(20) UNSIGNED;
が、全く同様のエラーでした。
試したこと2
BIG INT(20) を BIG INT(10) にしても、次のように数字が異なるだけで同じ内容のエラーでした。
ERROR
1#1064 - 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 'BIG INT(10) UNSIGNED' at line 1
試したこと3
ふと CREATE TABLE できるかと思い立って次を実行したのですが、
SQL
1CREATE TABLE my_test ( 2 ID BIG INT(20) UNSIGNED NOT NULL, 3 created_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) 4);
なんと、なぜかこれも次のようにエラーとなり、 CREATE TABLE までできません。
ERROR
1#1064 - 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 'BIG INT(20) UNSIGNED NOT NULL, 2 created_at DATETIME(6) NOT NULL DEFAULT CURRENT' at line 2
試したこと4
何がいけないのかまったくわからず、BIG INT を INT にしてみましたら、無事カラムを追加できました。
SQL
1ALTER TABLE my_tags ADD test_col INT(20) UNSIGNED;
つまりタイトルにあるように「BIG INT を含む操作が効かなくってしまいました」という状況なのですが…
こんなことってあるでしょうか?
(あまりに不可解な挙動のため、質問時に改めてすべて実行しましたが、ここまで書いたことに間違いはございません。)
補足情報(FW/ツールのバージョンなど)
バージョンは、MySQL 5.7.31 になります。( SELECT @@VERSION にて確認済み)
ちなみに、カラムの追加対象テーブル my_tags には現状10万件のレコードが保存されています。(しかしレコード件数が問題の原因ならば、試したこと3(新たな CREATE TABLE)ができないことの説明がつかないので関係ないとは思いますが…)
回答1件
あなたの回答
tips
プレビュー