1

私の仕事から、いくつかのテーブルを結合していくつかのレコードを選択して (存在しない場合) テーブルを作成しようとしています ( create table xx select * from t1 inner t2 など)。tMysqlRow コンポーネントを使用しています。よくわかりませんが、DDL操作に使用するのに適切なコンポーネントですか..!! 使用する適切なコンポーネントを提案してください。

tMysqlRow を使用すると、正常に動作することがありますが、一貫性がありません。「java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction」で失敗する場合があります。クエリに時間がかかりすぎるためですか、それとも DDL 操作に tMysqlRow を使用するのが間違っていますか? どこで間違っていますか?

4

1 に答える 1

2

私は問題を把握することができます。問題は、テーブルを tMysqlRow コンポーネントにドロップし、それを別の tMysqlRow に接続して再度作成しようとしていることです。これら 2 つは、単一の tMysqlConnection オブジェクトからは機能していません。そのため、一方は他方がコミットするのを待っています。

一度、これらの tMySqlRow コンポーネントの両方を同じ tMySqlConnection オブジェクトで動作するようにしたら、問題は解決しました。

ここで学ぶべきポイントは、それらはすべて同じ接続オブジェクトから機能する必要があるということです。

于 2013-02-21T23:38:32.940 に答える