2017-03-14 8 views
0

同じレコード内のあるフィールドから別のフィールドにデータを移動し、既存のフィールドからデータを削除する場合は、これを1つのSQL文で確実に行うことができます。データベースプロバイダに依存していますか?更新されたフィールドがSQL文で順次処理される

私は考えていますSQLの例は、以下のいずれかの助けを

UPDATE table SET field2 = field1, field1 = '' WHERE keyField = 1 

おかげで

答えて

0

などのOracle、SQL Serverのは、MySQL、などの主要なDBさんがトランザクションであるため、はい、それは信頼性がありますこれはACIDを保証する。言い換えれば、それはすべてのシナリオか何もないシナリオであり、すべての変更は起こります(トランザクションがロールバックされるなど)。

しかし、それは連続していません。つまりは、同じ結果生じるであろう、これを行う:むしろ

UPDATE table SET field1 = '', field2 = field1 WHERE keyField = 1 

を、あなたのSQLはこのような何かやっている:ここで私はそれは問題ではないと思い、そのトークンによって

UPDATE table 
SET field2_NewValue = field1_OriginalValue 
, field1_NewValue = '' 
WHERE keyField = 1 
+0

を更新部項目を入れて注文します? –

関連する問題