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.