日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

原子計數(shù)器

將列當成一個原子計數(shù)器使用,對該列進行原子計數(shù)操作,可用于為某些在線應用提供實時統(tǒng)計功能,例如統(tǒng)計帖子的PV(實時瀏覽量)等。

前提條件

  • 已初始化Client,詳情請參見初始化OTSClient。
  • 已創(chuàng)建數(shù)據(jù)表并寫入數(shù)據(jù)。

限制

  • 只支持對整型列的列值進行原子計數(shù)操作。
  • 作為原子計數(shù)器的列,如果寫入數(shù)據(jù)前該列不存在,則默認值為0;如果寫入數(shù)據(jù)前該列已存在且列值非整型,則產生OTSParameterInvalid錯誤。
  • 增量值可以是正數(shù)或負數(shù),但不能出現(xiàn)計算溢出。如果出現(xiàn)計算溢出,則產生OTSParameterInvalid錯誤。
  • 默認不返回進行原子計數(shù)操作的列值,可以通過相應操作指定返回進行原子計數(shù)操作的列值。
  • 在單次更新請求中,不能對某一列同時進行更新和原子計數(shù)操作。假設列A已經執(zhí)行原子計數(shù)操作,則列A不能再執(zhí)行其他操作(例如列的覆蓋寫,列刪除等)。
  • 在一次BatchWriteRow請求中,支持對同一行進行多次更新操作。但是如果某一行已進行原子計數(shù)操作,則該行在此批量請求中只能出現(xiàn)一次。
  • 原子計數(shù)操作只能作用在列值的最新版本,不支持對列值的特定版本做原子計數(shù)操作。更新完成后,原子計數(shù)操作會插入一個新的數(shù)據(jù)版本。

接口

/**
 * 更新一行數(shù)據(jù)。
 * @api
 * @param [] $request 請求參數(shù)。
 * @return [] 請求返回。
 * @throws OTSClientException 當參數(shù)檢查出錯或服務端返回校驗出錯時拋出異常。
 * @throws OTSServerException 當OTS服務端返回錯誤時拋出異常。
 */
public function updateRow(array $request);         

updateRow接口中新增了原子計數(shù)器的操作接口,操作說明請參見下表。

操作

說明

update_of_attribute_columns

更新類型為INCREMENT,對列執(zhí)行增量變更,例如+X,-X等。配置格式如下:

'update_of_attribute_columns'=> array(
    'INCREMENT' => array (     
        array('<column_name>', <value>, ColumnTypeConst::CONST_INTEGER), 
    ),
)

return_content

返回進行增量變更后的列值。您需要設置進行增量變更的列名以及設置返回類型為ReturnTypeConst::CONST_AFTER_MODIFY。配置格式如下:

'return_content' => array(
    'return_type' => ReturnTypeConst::CONST_AFTER_MODIFY,
    'return_column_names' => array('<column_name>')
 )

參數(shù)

參數(shù)

說明

table_name

數(shù)據(jù)表名稱。

column_name

進行原子計數(shù)操作的列名。只支持對整型列的列值進行原子計數(shù)器操作。

value

對列進行增量變更的值。

return_content

返回進行原子計數(shù)操作的列信息。包含return_typereturn_column_names配置。

  • return_type:設置此參數(shù)為ReturnTypeConst::CONST_AFTER_MODIFY,返回進行原子計數(shù)操作的列的新值。

  • return_column_names:對于進行原子計數(shù)操作的列,返回列值的列名。

示例

以下示例用于在寫入數(shù)據(jù)時對整型列做列值的增量變更,然后讀取更新后的新值。

$request = array (
    //設置數(shù)據(jù)表名稱。
    'table_name' => 'MyTable',
    //設置行存在性條件為RowExistenceExpectationConst::CONST_IGNORE,表示忽略行是否存在,不做任何行存在性檢查。
    'condition' => RowExistenceExpectationConst::CONST_IGNORE,
    //設置主鍵值。設置的主鍵個數(shù)和類型必須與數(shù)據(jù)表的主鍵個數(shù)和類型一致。
    'primary_key' => array ( 
        //第一列主鍵名為PK0,類型為整型,列值為123。
        array('PK0', 123),
        //第二列主鍵名為PK1,類型為字符串,列值為'inc'。
        array('PK1', 'inc')
    ),
    //更新的屬性列。支持設置PUT、DELETE和DELETE_ALL三種操作類型。
    'update_of_attribute_columns'=> array(
        'INCREMENT' => array (     
            //設置進行原子操作的列名為attr0以及設置對列進行增量變更的值為1.其中attr0列的數(shù)據(jù)類型為整型。
            array('attr0', 1, ColumnTypeConst::CONST_INTEGER), 
        ),
        'PUT' => array(
            array('attr1', 1, ColumnTypeConst::CONST_INTEGER),
        )
    ),
    //返回進行原子操作后的列信息。
    'return_content' => array(
        'return_type' => ReturnTypeConst::CONST_AFTER_MODIFY,
        'return_column_names' => array('attr0')
    )
);
$response = $otsClient->updateRow ($request);
print json_encode ($response);