【发布时间】:2018-04-26 03:33:38
【问题描述】:
当该表上有已定义的物化视图时,似乎无法从表中删除列。例如,假设我们有这个表:
> CREATE TABLE healthera.users (
> user_id timeuuid PRIMARY KEY,
> address text,
> birthday int,
> forename text,
> user_password text,
> username text
> );
我们在下面定义物化视图:
> CREATE MATERIALIZED VIEW users_by_username AS
> SELECT * FROM users
> WHERE user_id IS NOT NULL AND username IS NOT NULL
> PRIMARY KEY (username, user_id);
然后我们修改 users 表并添加一列:
> ALTER TABLE users ADD last_name text;
当我们尝试从用户表中删除此列或任何其他列时,我们会返回此错误:
> ALTER TABLE users DROP last_name ;
> InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot drop column last_name, depended on by materialized views (healthera.{users_by_username})"
或
> ALTER TABLE users DROP forename ;
> InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot drop column forename, depended on by materialized views (healthera.{users_by_username})"
这是预期的吗?我们应该如何处理?我们是否需要删除物化视图,删除列,然后再次重新创建物化视图?如果是,这对 cassandra 来说有多贵?
【问题讨论】:
标签: cassandra datastax-enterprise datastax-startup