我创建了一个表帖子。当我提出请求SELECT:
return $this->db->query('SELECT * FROM "posts" WHERE "id" IN(:id) LIMIT '.$this->limit_per_page, ['id' => $id]);
我收到错误:
PRIMARY KEY栏" id"不能限制(前一栏 " post_at"不受限制或非均衡关系)
我的表转储是:
CREATE TABLE posts (
id uuid,
post_at timestamp,
user_id bigint,
name text,
category set<text>,
link varchar,
image set<varchar>,
video set<varchar>,
content map<text, text>,
private boolean,
PRIMARY KEY (user_id,post_at,id)
)
WITH CLUSTERING ORDER BY (post_at DESC);
我读了一些关于PRIMARY和CLUSTER KEYS的文章,并且理解,当有一些主键时 - 我需要使用 IN 的运算符 = 。在我的情况下,我不能使用一个PRIMARY KEY。你建议我改变表格结构,那个错误会消失吗?
答案 0 :(得分:1)
我的虚拟表结构
CREATE TABLE posts (
id timeuuid,
post_at timestamp,
user_id bigint,
PRIMARY KEY (id,post_at,user_id)
)
WITH CLUSTERING ORDER BY (post_at DESC);
插入一些虚拟数据后
我运行了查询select * from posts where id in (timeuuid1,timeuuid2,timeuuid3);
我正在使用cassandra 2.0和cql 3.0