【发布时间】:2014-07-25 22:40:48
【问题描述】:
有没有办法像 MySQL 一样更新 Cassandra 数据库来更新表? 我有数据存储在 cassandra 中,我需要更新数据。是否有任何更新命令可以这样做?
【问题讨论】:
有没有办法像 MySQL 一样更新 Cassandra 数据库来更新表? 我有数据存储在 cassandra 中,我需要更新数据。是否有任何更新命令可以这样做?
【问题讨论】:
是的,您可以对数据库中的一行执行UPDATE(从 CQL shell)。但是,与 MySQL 不同的是,您只能在 WHERE 子句中指定主键。此示例假定一个名为“products”的表的主键为“productNumber”。
UPDATE products
SET description1='PROD DESC1'
WHERE productNumber='ITEM00123';
如果您指定的主键不存在行,则会创建一个新行。
有关详细信息,请参阅 abhi 在其答案中链接的 UPDATE CQL 命令的 DataStax 文档。
编辑:我不确定纯 Javascript,但 Node.js 有一个 Cassandra 驱动程序 (node-cassandra-client)。您可以使用该驱动程序连接到 Cassandra 并在 Javascript 中执行更新。以下是如何执行上述UPDATE的示例:
var conOptions = { hosts: ['127.0.0.1:19170'],
keyspace: 'productKeyspace',
use_bigints: false };
var con = new PooledConnection(conOptions);
var cql = 'UPDATE products SET description1=? where productNumber=?';
var params = ['PROD DESC1', 'ITEM00123'];
con.execute(cql, params, function(err) {
if (err) {
console.log(err);
}
con.shutdown(callback);
});
欲了解更多信息,请查看Rackspace's doc on the node.js driver。
【讨论】: