こんにちは。SWEの中村(@mnmandahalf)です。 最近サービス稼働中にDDLを適用するタイミングで初遭遇したMySQLのエラーについて皆様にご紹介したいと思います。 エラーの内容と発生条件(概要) ① トランザクション分離レベル transaction-isolation が REPEATABLE-READ である ② セッションAのトランザクション内でテーブルt1をメタデータロックしないテーブルt2へのSQLを実行 ③ セッションBがテーブルt1に対して特定のDDLを実行 ④ セッションAがテーブルt1を参照すると ERROR 1412 (HY000): Table definition has changed, please retry transaction というエラーが発生し、セッションAのトランザクションがロールバックする ※なお、テーブルt2がテーブルt1への外部キ
