私はテーブルaccounts
とaction
を持っています。 action
に格納されている命令に従って、accounts
を変更する必要があります。
各行には、account-id、アクション(i = insert、u = update、d = delete、x =無効な操作)およびアカウントの更新量が含まれています。挿入時にJava:トランザクション処理システム
- アカウントがすでに存在する場合、更新は更新時に代わりに
- を行うべきであるアカウントが存在しない場合、それは、ON DELETE 挿入
- によって作成されます行が存在しない場合、アクションはとられない
入力
のアカウント:
+---id----value--+
| 1 | 1000 |
| 2 | 2000 |
| 3 | 1500 |
| 4 | 6500 |
| 5 | 500 |
+----------------+
アクション:
+---account_id---o---new_value---status---+
| 3 | u | 599 | |
| 6 | i | 2099 | |
| 5 | d | | |
| 7 | u | 1599 | |
| 1 | i | 399 | |
| 9 | d | | |
| 10 | x | | |
+-----------------------------------------+
出力
アカウント:
+---id----value--+
| 1 | 399 |
| 2 | 800 |
| 3 | 599 |
| 4 | 1400 |
| 6 | 20099 |
| 7 | 1599 |
+----------------+
アクション:
+---account_id---o---new_value-------------------status----------------+
| 3 | u | 599 | Update: Success |
| 6 | i | 20099 | Update: Success |
| 5 | d | | Delete: Success |
| 7 | u | 1599 | Update: ID not founds. Value inserted |
| 1 | i | 399 | Insert: Acc exists. Updated instead |
| 9 | d | | Delete: ID not found |
| 10 | x | | Invalid operation: No action taken |
+----------------------------------------------------------------------+
私は、JavaとJDBCを経験したのですが、残念ながら私はここで起動する方法を、知りません。
追加のテーブルが必要ですか?トリガーを使用する必要がありますか?
これで何をしましたか? –
これを完全にSQLに入れる必要がありますか?または、ステータスコードはJavaコードから生成できますか?それがJavaコードの場合は、上のロジックをコード化するのは簡単です。それにかかわらず、あなたはi、o、uの解決をJavaコードに入れようとしているので、トリガーなどを必要とせずにロジックの残りの部分を実行することができます。 –
いいえ、それはどのように解決するかです。私はちょうど始める方法を知らない。追加のテーブルが必要ですか? – user1170330