1回のトランザクションにつき一連のレコード(たとえば100)を追加します。私は各レコードに「トランザクションID」フィールドを持たせ、新しいトランザクションごとにインクリメントし、特定のトランザクション内に挿入されたレコードごとに同じ値にします。クライアントがクエリを実行し、その後、同じクエリを実行することができますが、新しいトランザクションIDを持つレコードのみを取得できるようにします。それをする最善の方法は何ですか? DBはいくつかのプロセスからアクセスされるため、アプリケーションレベルでIDを生成する必要はありません。そのため、ID割り当てのクロスプロセスを調整する必要があります。または、私は単一のautoincrememt列を持つ専用のTXIDテーブルを作成し、トランザクションを開始する前にそれを挿入し、TXIDとしてlast_insert_rowid()を使用することができますが、IDを生成するだけのインクリメントのテーブルを格納するのは少し非効率です。何かご意見は?ありがとう。sqlite:マルチインサートトランザクションのトランザクションIDを作成する
0
A
答えて
1
整数を増分したい場合は、実際に提案したことを実行する必要があります。トランザクションIDを保持している別のテーブルが必要です。行を削除するには、この表を公平に掃引することができますが、行が非常に小さく効率的になるため、大きな問題ではありません。
他にもさまざまな解決策がありますが、既に理解しているように、ほとんどの場合、状況に応じて動作しません(必要な忠実度に応じて衝突する可能性があります)。一意性を保証するためにデータベースを活用する必要がある場合は、これがSQLiteで行う唯一の方法です。あるいは、random
またはrandomblob
functionsのようなものを試すこともできますが、PRGには一意性保証はありません。
あなたはあなたは多くのプロセスからの書き込みしている場合にも、これらはしかし、まれまだ競合、することができます(アプリケーションレベルでRFC 4122 UUIDを生成することができ、単調に増加する整数を必要としない場合 - あなたはまた、タグ付けする場合がありますプロセス固有の文字列を使用して、urn:uuid:<tag>+<uuid>
のようなURNにします)。すべてのライターが同じマシン上にある場合、タグとしてpid
のようなものを使用すれば、一意性を保証するのに十分です。
関連する問題
- 1. nodejsのSqliteトランザクション
- 2. 新しいトランザクションがオープン操作sqliteの
- 3. POS用のトランザクションIDを生成
- 4. トランザクションsqlite? C#で
- 5. SQLiteのトランザクションとRxJava
- 6. なぜ新しい(SQLite)データベースファイルが各トランザクションで作成されるのですか?
- 7. ユーザー作成トランザクション
- 8. ハイパージーガートランザクションタイプ:トランザクションの作成
- 9. Python - sqliteはデフォルトで整数ID列を作成しますか?
- 10. Android、SQLiteトランザクションとプロセスフリーズ
- 11. SQLiteトランザクション数制限?
- 12. HTML5、SQLiteトランザクションの質問
- 13. PDOトランザクションでテーブルを作成
- 14. トランザクションLaravelスキーマの作成
- 15. sqliteテーブルの作成
- 16. sqliteトランザクションに関する質問
- 17. Spring + Hibernate + SQLiteトランザクション奇妙
- 18. SQLite C++ APIトランザクションが遅い
- 19. IDからIDを作成する
- 20. リモートデバイス(モバイルなど)からトランザクションを作成してBlockainのトランザクションまたはコールデータを作成する
- 21. アドバンスネイティブアドバンスドアドIDを作成する
- 22. InnoDbトランザクションと作成ステートメント
- 23. トランザクションが毎回失敗するhttps://test.payu.in/_payment_optionsでトランザクションを作成する
- 24. SQLiteテーブル作成エラー
- 25. Authorize .Net DPMトランザクションID
- 26. iPhone:パスワードを作成するSQLiteデータベース
- 27. C++でSqliteデータベースを作成する
- 28. QtでSQLiteデータベースを作成する(C++)
- 29. sqliteデータベースを再作成する
- 30. 動的にsqliteテーブルを作成する
お返事ありがとうございます。私はUUIDについて考えましたが、新しいIDのそれぞれが最後のIDよりも大きくなるようにする必要があります。 TXIDテーブルソリューションを行います。 – gimmeamilk