はじめに
問題が発生したテーブルですが、mysqlの全文検索インデックスを設定したテーブルで、全文検索インデックスはGenerated Column(Stored)で生成したカラムに貼ってありました。mysqldumpを取り、リストを行った所下記エラーが発生しました。
ERROR 3105 (HY000) at line XXX: The value specified for generated column 'XXX' in table 'XXXX' is not allowed.
発生環境
Webサーバ: EC2
DB: RDS(mysql5.7)
解決方法
本事象ですが、EC2にインストールしていた、mysql clientが5.6
のため発生した不具合でした。
mysql clientが5.6以前で、mysqldumpを取った際にGenerated Columnは、通常カラムと同様の扱いとなり、insert文に対象カラムの情報が記載されてしまい上記エラー発生します。
同一問題に当たった場合は、--complete-insert
を使ってカラムを下記だして状況確認するのが良いかと思います。clientのバージョンが5.7系であれば、Generated Columnはinsert文に対象カラムとして表示されないはずです。
おわりに
今回は、全文インデックスを張る関係で、Generated ColumnはStoredとしていましたが、Viewの場合にmysqldump実行時にエラーが発生するバグが挙がっています。
Generated Column(View Bug)https://bugs.mysql.com/bug.php?id=79148