3
이 테이블에 정의 된 구체화 된보기가있는 경우 테이블에서 열을 삭제할 수없는 것으로 보입니다. 예를 들어, 우리는이 테이블이 있다고 가정하자 :구체화 된보기가있는 테이블의 열 삭제
> 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);
그런 다음 우리는 사용자 테이블을 변경하고 우리가 열 추가 :
> ALTER TABLE users ADD last_name text;
을
사용자 테이블에서이 열 또는 다른 열을 삭제하려고 시도하면이 오류가 표시됩니다.
,623,210또는
> 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})"
이 뭔가 예상되어 있습니까? 어떻게 처리해야합니까? 구체화 된 뷰를 삭제하고 열을 삭제 한 다음 구체화 된 뷰를 다시 작성해야합니까? 그렇다면 카산드라에게 얼마나 비쌉니까?
덕분에 매우 도움이 될 것입니다! 따라서 솔루션은 구체화 된 뷰를 삭제하고 소스 테이블에서 컬럼을 삭제 한 후 구체화 된 뷰를 다시 작성하는 것입니다. –
네, 맞습니다. – juniormint88