Я создал одну таблицу posts. Когда я делаю запрос SELECT:
return $this->db->query('SELECT * FROM "posts" WHERE "id" IN(:id) LIMIT '.$this->limit_per_page, ['id' => $id]);
Я получаю сообщение об ошибке:
Столбец PRIMARY KEY «id» не может быть ограничен (предыдущий столбец «post_at» либо не ограничен, либо не связан с EQ)
Мой дамп таблицы:
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);
Я прочитал какую-то статью о ПЕРВИЧНЫХ И КЛАСТЕРНЫХ КЛЮЧАХ и понял, что когда есть несколько первичных ключей - мне нужно использовать оператор = с IN. В моем случае я не могу использовать один ПЕРВИЧНЫЙ КЛЮЧ. Что вы мне посоветуете изменить в структуре таблицы, чтобы ошибка исчезла?
return $this->db->query('SELECT * FROM "posts" WHERE "index_field" = :index AND "id" IN(:id) LIMIT '.$this->limit_per_page, ['id' => $id, 'index' => 1]);
Get error: 'Syntax_error: line 1:45 no viable alternative at input 'index'
- person Alice   schedule 30.08.2014PRIMARY KEY (id, post_at, user_id)
- person Alice   schedule 30.08.2014PRIMARY KEY column "user_id" cannot be restricted (preceding column "post_at" is either not restricted or by a non-EQ relation)
Я предлагаю вам написать ответ с более подробной информацией, чтобы мы понимали друг друга - person Alice   schedule 30.08.2014