.deb を使用して Ubuntu システムに MySQL Workbench (community-6.2.3) をインストールしています。
Workbench セッションは、他のセッション (アプリケーション/コマンド ライン クライアント) によって行われたデータベースへの更新 (DML) を認識していないようです。
新しいセッションは、開始時にデータベースの正しいステータスを確認できますが、その後に発生した変更は表示されません。
ワークベンチでコミットした後、ワークベンチセッションがデータベースと同期しているようです。
Error Code: 1412. Table definition has changed, please retry transaction
別のセッションから作成したテーブルをクエリしようとすると、エラーが発生します。
ワークベンチ以外のセッションには、これらの問題はないようです。
構成か何かがありませんか?
アップデート:
これは、一部は予期された動作であり、一部はバグです。
私はautocommit mode を使用していません。この場合SELECT
、最初の読み取り時に確立されたスナップショットを使用してステートメントが実行されます。
これは、MySQL Workbench で使用される REPEATABLE READ 分離レベルの動作です。
MySQL Workbench セッションのデフォルトの分離レベルを変更または設定する方法はありますか?
Workbench で実行した場合:
SELECT @@Global.tx_isolation, @@tx_isolation, @@session.tx_isolation;
戻り値:
READ-COMMITTED, REPEATABLE-READ, REPEATABLE-READ
対照的に、コマンド ライン クライアントでは:
READ-COMMITTED, READ-COMMITTED, READ-COMMITTED
関連:
MySQL REPEATABLE-READ Workbench トランザクション レベルが設定されていません
MySQL Workbench とデフォルトのセッション分離レベル