以前、ほぼ同じ質問をしましたが、シーケンサーのためにMERGE構文を使用できません。問題は、データベース内の人々の価格ルールがあることです。同じルールを持つべき他の人々のためにこれらの価格ルールを同期させたいです。
+---------------------------+
| id | name | belongs_to_id |
|----+------+---------------+
| 1 | A | |
| 2 | B | 1 |
| 3 | C | 1 |
| 4 | D | |
+----+------+---------------+
さて、これで、ユーザーBとCは、最終的に、ユーザーAと同じ価格ルールを持つ必要があります。したがって、次のような価格ルールテーブル(簡略化)があります。
+-----------------------------------+
| id | user_id | product_id | price |
+----+---------+------------+-------+
| 1 | 1 | 1 | 0.12 |
| 2 | 1 | 2 | 0.10 |
| 3 | 1 | 3 | 0.03 |
| 4 | 2 | 2 | 0.10 |
| 5 | 2 | 3 | 0.10 |
| 6 | 3 | 1 | 0.12 |
| 7 | 3 | 2 | 0.10 |
| 8 | 3 | 3 | 0.03 |
| 9 | 3 | 4 | 0.25 |
+----+---------+------------+-------+
したがって、この例では、何が起こるかは次のとおりです。
- ユーザー2に製品1の価格を0.10で提供します
- ユーザー2の製品3の価格を0.03に更新します
- ユーザー3、製品4の価格ルールを削除します
削除、更新、追加の3つの手順を実行する必要があると考えました。私は最初の2つを手に入れました。しかし、私は挿入ステートメントについて輪になって考えています。基本的に、ユーザー1のすべての価格ルールを選択してから、ユーザーごとにproduct_idで結合したままにする必要があります。ユーザーごとにこれを行うにはどうすればよいですか?
Oracle10.1を使用しています