9

例外やアプリケーションのクラッシュが発生した場合にエントリが保存されないように、他の非 mysql 関連プロセスが正常に完了するまで実際に保存せずに、mySQL から自動インクリメント ID を取得したいと考えています。ID を他のプロセスのキーとして使用する必要があります。本質的に、自動インクリメントを「予約」し、最後のステップとして行を mySQL に挿入します。プロセス全体が正常に完了したことがわかるまで、行を挿入したくありません。

この種の自動インクリメント予約を mySQL で行うことは可能ですか?

注: SQL トランザクションについては知っています。しかし、私たちのプロセスには、DB の外部で発生する必要がある SQL 以外のものが含まれています。これらのプロセスには、数分から数時間かかる場合があります。しかし、同じ自動インクリメント ID を使用する他のプロセスは必要ありません。そのため、DB に実際にデータを挿入することなく、自動インクリメント ID を「予約」する必要があります。–

4

3 に答える 3

1

mysql トランザクションの使用を検討しましたか?

その本質は、トランザクションを開始し、すべてのSQLステートメントが正しく、完了できる場合、トランザクションをコミットすることです。そうでない場合は、何も起こらなかったかのようにロールバックします。

詳細については、次のリンクを参照してください: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-transactions.html

于 2013-08-23T20:38:38.247 に答える
1

トランザクションとともに一時テーブルを使用できます

トランザクション完了の一時テーブルがなくなり、データを実際のテーブルに移動する場合

http://www.tutorialspoint.com/mysql/mysql-temporary-tables.htm

于 2013-08-23T20:48:31.917 に答える