コンテンツにスキップ

16.6.4 TAGデータUPDATEサポート表

TAGテーブルの実際の時系列データは、UPDATE table_name SET ... WHERE ...で更新できます。 このページではTAGデータUPDATEで許可するWHERE条件とSET対象をまとめます。 メタデータの更新には別のUPDATE ... METADATA構文を使用します。

Machbase 8.7.0以降でサポート

TAGデータUPDATEは、Standard Editionの論理TAGテーブルでのみサポートします。 Cluster Editionと内部のrawコンポーネントテーブルへの直接UPDATEはサポートしません。

WHERE条件別のサポート状況

TAGデータUPDATEには、1つのタグ選択条件と1つ以上のBASETIME軸条件が必要です。

WHERE条件サポート備考
name = 'tag-01'O単一タグを選択
name = ?, name = :tag_nameO位置指定/名前付きバインドで単一タグを選択
? = name, :tag_name = nameO左右を逆にした等値条件もサポート。列を左辺に置く形式を推奨
name IN ('tag-01', 'tag-02')Oリテラル/バインド値のリストをサポート。サブクエリのINは非対応
name LIKE 'tag-%'Oパターンに一致するタグを対象に展開
time = t1OBASETIME列の等値条件
time = ?, time = :base_timeO位置指定/名前付きバインドで基準時刻を指定
? = time, :base_time = timeO左右を逆にした等値条件をサポート
time BETWEEN t1 AND t2O両端を含む
time >= t1 AND time < t2O>>=<<=の組み合わせをサポート
time >= ? AND time < ?O範囲の境界値にもバインドマーカーを使用可能
片側のみの時刻条件O例: time >= t1
データ列の述語O例: value > 100。タグ/時刻条件と併用
条件のないUPDATEXTAGデータ全体のUPDATEは不可
タグ選択のない時刻条件のみX対象タグの指定が必要
時刻条件のないタグ条件のみXBASETIME範囲の指定が必要
OR条件XTAGデータUPDATE条件では不可
サブクエリ/集約式XUPDATE対象の決定条件には使用不可
タグ/軸列を関数・演算式で囲む式Xタグ選択とBASETIME条件では該当列を直接指定する必要がある

バインドパラメーターは値のみを置き換えます。必須のタグ選択・BASETIME条件、許容する条件構造、 SET対象は変わりません。プリペアドステートメントを再実行すると最新のバインド値で対象を選び直し、 一致する行がなければ影響行数0で成功します。

SET対象列別のサポート状況

SET対象サポート備考
データ列Ovalueや補助列などのユーザーデータ列
SUMMARIZEDデータ列O元のTAGデータを更新
複数のデータ列O同じUPDATE文でまとめて指定可能
name (PRIMARY KEY)Xタグ名は変更不可
time (BASETIME)X時間軸列は変更不可
メタデータ列XUPDATE table_name METADATA SET ...を使用
隠し/システム列X内部列はUPDATE対象外

SET式には、定数、バインド変数、既存行の列を参照しない算術式・関数・CASE式・文字列連結、 列制約が許容する場合はNULL値を使用できます。SETの右辺で既存行の列を参照することはできず、 サブクエリと集約式も使用できません。

正式な参照先

実行構文とパラメーターのメタデータはTAGデータUPDATEを、 SDK別のマーカーAPIはNamed Bind Parameterを、 診断はTAGの制約とトラブルシューティングを参照してください。

最終更新日