2012-04-11 13 views
3

私はこのようなタスクを行うに7 SQLクエリを持っている:このように7つのSQLクエリを単一クエリにすることは可能ですか?

1. UPDATE Customer SET CustomerService = 'perta' WHERE FirstName = 'john'; 
2. UPDATE Customer SET Flag = 1 WHERE OrderNum BETWEEN 2 AND 29; 
3. UPDATE Customer SET PurchaseNum = PurchaseNum + 60 WHERE OrderNum BETWEEN 2 AND 29; 
4. UPDATE Customer SET OrderNum = OrderNum + 60 WHERE OrderNum BETWEEN 2 AND 29; 
5. UPDATE Customer SET PurchaseNum = PurchaseNum - 28 WHERE (PurchaseNum > 29 AND PurchaseNum <= 89) AND (Flag <> 1); 
6. UPDATE Customer SET OrderNum = OrderNum - 28 WHERE (OrderNum > 29 AND OrderNum <= 89) AND (Flag <> 1); 
7. UPDATE Customer SET Flag = 0 WHERE OrderNum BETWEEN 62 AND 89; 

は、それが1つのクエリにそれらのSQLクエリを「圧縮」することは可能でしょうか?

私はESCボタンを押して(SUBMITボタンを押した後に)プロセスをキャンセルすることがあるので、それらのシーケンスは途中で壊れてしまい、テーブルが乱雑になります。

+11

トランザクションを使用してください! (そしてそれらをサポートするストレージエンジン) – Mat

+3

なぜトランザクションを使用しないのですか? –

+4

は取引について聞いたことがありますか?また、クライアントがHTTPリクエストを作成すると、リクエストを送信しているワイヤーを切断することはできません。 – Baz1nga

答えて

1

MySQLを使用している場合は、このリンクを参照して、MySQLにトランザクションを実装する方法を示します。

http://dev.mysql.com/doc/refman/5.5/en/commit.html

取引は、多くのシナリオで私たちを助け、あなたが複数のデータベーステーブルを更新するそのうちの一つを処理しています。

関連する問題