データベースの更新制御(update)

SQLのUPDATE句を組立て実行します。処理結果件数は処理中に参照が可能な他、
mappingタグを用いてDataBeanに返却できます。
使用可能箇所
run
Sub Tags
link , join , where , value , formula

属性
id
処理結果件数を管理するID
entity
テーブル名/ビュー名、またはビュー・クラス名
transaction
トランザクション設定ファイルのXMLファイル名(例:default)
database
トランザクション設定ファイル内の接続設定のコード
schema
標準スキーマ
exclusion
排他制御の対象カラム(カンマ区切りで複数指定可能)
※Beanの項目名とカラム名が異なる場合は「カラム名:項目名」
※link, joinタグにてテーブル結合している場合は「デーブル名.カラム名:項目名」
when
多くのTagsでサポートしている「実行可否判定のための属性」です。 (こちらを参照)

(記述例) 「SYS_USER」のUSER_CODEに対しDataBeanのIDの値をキーとして対象レコードの
カラム「USER_PASS」をDataBeanのPASSの値を使用して更新
また、排他制御としてUPDATE_DATEがBeanの持つ値と異なる場合は更新せず
排他制御エラーを返却します。

    <update id="UPD_COUNT" entity="SYS_USER" exclusion="UPDATE_DATE">
     <value key="PASS" map="USER_PASS" />
     <where>
      <data key="ID" map="USER_CODE" type="eq" def="NULL" />
     </where>
    </update>
  
(注) DataBeanのUSER_CODEが意図せずNULLの場合でも条件なしの更新とならないようにdef="NULL"を設定 updateタグを用いてデータベースを更新する際の条件のために参照するテーブルを等結合または外部結合します。
属性
(記述例) 「SYS_USER_AUTHORITY」のAUTH_CODEに'ADMIN'をもつ「SYS_USER」の
USER_PASSをDataBeanのPASSの値に更新
また、排他制御としてUPDATE_DATEがBeanの持つ値と異なる場合は更新せず排他エラーを返却します。
 
SQL文 UPDATE SYS_USER SET PASS = (DataBeanのUSER_PASSを設定)
   FROM SYS_USER_AUTHORITY
   WHERE SYS_USER_AUTHORITY.CORPORATE_CODE = SYS_USER.CORPORATE_CODE
    AND SYS_USER_AUTHORITY.USER_CODE = SYS_USER.USER_CODE
    AND SYS_USER_AUTHORITY.AUTH_CODE = 'ADMIN'
    AND SYS_USER.UPDATE_DATE = '2020-08-31 10:59:23.123'

    <update id="UPD_COUNT" entity="SYS_USER" exclusion="SYS_USER.UPDATE_DATE:UPDATE_DATE">
     <value key="USER_PASS" map="PASS" />
     <link entity="SYS_USER_AUTHORITY" keys="CORPORATE_CODE, USER_CODE"
      base="SYS_USER" />
     <where>
      <data val="ADMIN" map="AUTH_CODE" type="eq"
       base="SYS_USER_AUTHORITY" />
     </where>
    </update>
  

更新条件(where)

updateタグを用いてデータベースを更新する際の条件が定義できます。
使用可能箇所
update
Sub Tags
condition, data

where及びdataタグの使い方は、selectタグと同じです(こちらを参照)

更新データの定義(value)

updateタグを用いてデータベースを更新する際に、カラムへ設定する値または数式を定義できます。
使用可能箇所
update
Sub Tags
記述不可

valueタグの使い方は、createタグと同じです(こちらを参照)

数式の結果を登録(formula)

updateタグを用いてデータベースを更新する際に、カラムへ設定する数式を定義できます。
※valueタグのformula属性では書きづらい長文の数式を用いる場合に使用。
※formula属性と同様に数式内ではコマンド・テキストが使用できます。
使用可能箇所
update
Sub Tags
記述不可

formulaタグの使い方は、createタグと同じです(こちらを参照)
©Camel engineering LLP