0

私は SQLite と C# を使用していますが、このケースがあります。Persons テーブルと Cars テーブルがあります。関係は 1:N で、1 人が何台もの車を持つことができ、1 台の車は 1 人だけのものです。

さて、私は 2 つのレジスターを持っていますが、ラリーは同じ人物であるため、2 人の人物を 1 つのみにマージしたいとします。

だから私のアイデアは次のとおりです。

1.- 私は正しい人を選びます。2.- 間違った人の車をすべて選択します。 3.- 間違った人の車の IDPerson を正しい人の IDPerson に設定します。

問題は、間違った人の車をすべてロードして IDPerson を変更する間に、他のユーザーが新しい車を間違った人に割り当てることができるため、結果に含まれていないため、この新しい車には間違った人の IDPerson が含まれることです。間違った人の車をすべて取得したときのクエリの。

たとえばSQL Serverでは、トランザクションを使用して間違った人をブロックして、2番目のユーザーが間違った人に新しい車を割り当てることができないようにしますが、SQL Liteでは登録をブロックできません。トランザクションが mdb をブロックし、エラーが発生します。

したがって、最初のユーザーが 2 人をマージしている間に、誰も新しい車を間違った人に追加できないようにする別の方法を知りたいです。

ありがとう。

4

0 に答える 0