0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQL5.7でGenerated Columnを作成したがmysqldumpしたデータをリストアできなかった話

Posted at

はじめに

問題が発生したテーブルですが、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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?