我有一个像这样定义的CQL表:
CREATE table primary_key_only(
row_key varchar,
clustered_key varchar,
primary key(row_key, clustered_key)
)
Run Code Online (Sandbox Code Playgroud)
假设我插入这样的值:
INSERT INTO primary_key_only (row_key, clustered_key) VALUES ('FACE', 'D00D') USING TTL 86400;
Run Code Online (Sandbox Code Playgroud)
我如何检索插入数据的TTL?通常,如果有一个不属于主键的CQL列,那么我可以使用如下语句:
SELECT ttl(<column_name>) FROM table WHERE row_key='key';
Run Code Online (Sandbox Code Playgroud)
但由于只有主键列,像功能ttl和writetime将无法正常工作.除了在不属于主键的表中添加额外的"虚拟"列之外,我如何获得TTL?
基本上,我想在MySQL中实现与ON DUPLICATE KEY相同的功能.
这是一个人为的例子:
$rec = array('Foo' => array(
'id' => 999, // Assume there isn't already a record with this id
'website' => 'google'
));
$this->Foo->save($rec);
// save with different 'website' value
$rec['Foo']['website'] = 'stackoverflow';
$this->Foo->save($rec);
最后一行是否更新了几行创建的记录?