コンテンツにスキップ

16.6.3 TRANSACTION機能サポート表

MachbaseのTRANSACTIONテーブルは、トランザクションが必要な一般的なリレーショナルデータを保存します。 Machbase SQLとJDBC/ODBCなどの対応ドライバーでアクセスします。

注意: TRANSACTIONテーブルはStandard Editionでのみサポートします。Cluster Editionでは作成・使用できません。

修飾のないCREATE TABLECREATE TRANSACTION TABLECREATE TXN TABLEはすべてTRANSACTION テーブルを作成します。このためCluster Editionでは3つの構文がすべて拒否されます。 Cluster EditionでLOGテーブルを作成する場合はCREATE LOG TABLEを使用します。

SQL機能のサポート可否

機能サポート備考
基本DML
SELECTO
INSERTO
UPDATEO
DELETEO
INSERT … ON DUPLICATE KEY UPDATEOPRIMARY KEY・UNIQUE INDEXの競合時に既存行を更新
トランザクション
Transaction (COMMIT/ROLLBACK)O単独のBEGINCOMMITROLLBACK
TRANSACTION TRUNCATEのROLLBACKO明示的トランザクション内の全行削除として処理
SavepointX非対応
クエリ機能
Prepared StatementO
パラメーターバインドO
JOINO他のテーブルタイプとの結合が可能
SubqueryO
VIEWO
オブジェクト
SEQUENCEOCREATE SEQUENCE
PRIMARY KEY / UNIQUE INDEXO単一列のPRIMARY KEYと単一・複合列のUNIQUE INDEX
セカンダリINDEXO単一・複合列のBTREEインデックス
JSON path INDEXOjson_column->'$.path'
AUTO_INCREMENTOLONG/INT64列単位のPRIMARY KEY
ALTER ADD/DROP COLUMNO列定義に括弧を使用
ALTER RENAME COLUMN / RENAME TOO列名・テーブル名の変更
ALTER MODIFY COLUMNX非対応
TriggerX非対応
Stored ProcedureX非対応
Foreign KeyX非対応

AUTO_INCREMENTの使用方法はAUTO_INCREMENTを、 upsertはINSERT ON DUPLICATE KEY UPDATEを参照してください。 Appendはクライアント別に経路が異なるため、SDK Append matrixを 正式な参照先とします。

トランザクションと同時アクセスの境界

アクティブなトランザクションでも、他のテーブルタイプのSELECTと、タイプが混在するJOINを許可します。 ただし、LOG・TAG・LOOKUP・VOLATILEへの書き込みを同じTRANSACTIONトランザクションに含めることはできません。 許可されたクエリも、全タイプに共通のスナップショット時点を保証するものではありません。

一般的な制約エラーでは、失敗した文とトランザクション全体を区別します。先に成功した変更を取り消すには ROLLBACKが必要です。ロールバック専用状態では後続処理を続けず、終了してください。 開いているTRANSACTIONカーソルはCOMMIT・ROLLBACKを妨げる場合があります。

現在、複数のTRANSACTIONテーブルのコミットは、テーブルごとのストレージハンドルに順次適用されます。 通常の複数テーブルCOMMIT・ROLLBACKのサポートは、コミット中の障害を含めた複数テーブルの原子性保証とは 異なります。エラーや応答消失の後は、業務キーで反映状態を確認してください。

WALの古い読み取りスナップショットを書き込みに切り替える際の競合は、 TRANSACTION_BUSY_TIMEOUT_MS=-1でも待機では解消しません。 トランザクション演習2つの接続による競合演習を参照してください。

関連ドキュメント

最終更新日