MR_COUNTER列を含む行の挿入

データはMR_COUNTER列を含む複数リージョン表に挿入されますが、次の2つの場合にMR_COUNTER列値のデフォルト値0が生成されます。
  • MR_COUNTER列のinsert_clauseでキーワードDEFAULが使用されている場合。
  • INSERT句でMR_COUNTER列がスキップされた場合。

例1: MR_COUNTER列にデータを挿入する際のDEFAULT句の指定

CREATE Table myTable( name STRING,
                      count INTEGER AS MR_COUNTER,
                      PRIMARY KEY(name)) IN REGIONS DEN,LON;
INSERT INTO myTable VALUES ("Bob", DEFAULT);

SELECT * FROM myTable;
   {"name":"Bob","count":0}

例2: 複数リージョン表へのデータの挿入時のMR_COUNTER列のスキップ

CREATE Table myTable( name STRING,
                      count INTEGER AS MR_COUNTER,
                      PRIMARY KEY(name)) IN REGIONS DEN,LON;
INSERT INTO myTable(name) VALUES ("Chris');

SELECT * FROM myTable;
   {"name":"Chris","count":0}

例3: MR_COUNTER列がスキップされ、DEFAULT句が指定されていない場合のエラー

MR_COUNTER列にDEFAULT句が指定されておらず、列がINSERT句からスキップされていない場合は、次のようにエラーがスローされます。
CREATE Table myTable( name STRING,
                      count INTEGER AS MR_COUNTER,
                      PRIMARY KEY(name)) IN REGIONS DEN,LON;
INSERT INTO myTable VALUES ("Chris")

Error handling command execute 'INSERT INTO myTable VALUES ("Chris")':
Error: at (1, 0) The number of VALUES expressions is not equal to the number of table columns
MR_COUNTER列に値を明示的に挿入することはできません。DEFAULTコンストラクトを常に使用するか、INSERT句でMR_COUNTER列をスキップする必要があります。INSERT句またはAPIを使用してMR_COUNTER列に値を挿入しようとすると、次のようにエラーがスローされます。
CREATE Table myTable ( name STRING,
                       count INTEGER AS MR_COUNTER,
                       PRIMARY KEY(name)) IN REGIONS DEN;
INSERT INTO myTable VALUES("Tom",0)';

Error handling command execute 'INSERT INTO myTable VALUES("Tom",0)': Error: at (1, 38) MRCounter column must use DEFAULT construct.