いくつかのデータベースがあり、それらの間でデータを交換する必要があります。データベース A のインポートからデータベース B にエクスポートすると、ID の競合が発生します。私は2つのアプローチを考えていますが、誰も私を満足させません。
max(id) を選択し、競合を避けるために新しい ID を作成しますが、1 つの列に json 構造が格納され、ID も含まれています。(歴史的な理由)。したがって、新しい ID (主キー) を作成し、その json 列のすべての ID を変更する必要があります。
または、データ インポートごとにバッチ情報を追加できます。データをインポートするとき、SQL のすべての ID を見つけて、それらの前にバッチ ID を追加します。そのような:
元のデータベースは次のようになります。
ID COL_JSON
11 {id:11,name:xx ...}
新しいレコードを挿入したい :11 、挿入後、id の前にバッチ情報「1000」を追加します
今dbは次のようになります
ID COL_JSON
11 {id:11,name:xx ...}
100011 {id:100011,name:xx ...}
次のバッチは 1001,1002 1003 ... になるため、新しい 11 レコードを挿入する必要がある場合、データベースは次のようになります
ID COL_JSON
11 {id:11,name:xx ...}
100011 {id:100011,name:xx ...}
100111 {id:100111,name:xx ...}
2 つのアプローチは競合を解決できますが、2 つのアプローチはばかげていると感じます。優雅な計画はありますか?