数据仓库服务 GAUSSDB(DWS)-GAUSS-00551 -- GAUSS-00560:GAUSS-00554: "cannot drop columns from view"

时间:2023-12-11 09:47:18

GAUSS-00554: "cannot drop columns from view"

错误原因:使用CREATE OR REPLACE VIEW创建视图时,如果该同名视图已存在,那么新的视图定义必须返回和原视图相同的列(即具有相同的列名顺序和数据类型),否则会出现报错。

解决办法:视图定义后不能删除其中的列。新视图定义必须返回和原视图相同的列,即不能通过CREATE OR REPLACE VIEW的方式减少view的列。

例如:创建表tbl1和tbl2后,创建视图myview,以CREATE OR REPLACE VIEW的方式减少view的列出现报错。

CREATE TABLE tbl1(a int, b text);
CREATE TABLE tbl2(a int, b text);

CREATE VIEW myview as select * from tbl1;
CREATE VIEW

CREATE OR REPLACE VIEW myview as select a from tbl1;
ERROR:  cannot drop columns from view

此时可以删除原视图后,重新创建新视图。

DROP VIEW myview;
DROP VIEW

CREATE OR REPLACE VIEW myview as select a from tbl1;
CREATE VIEW
support.huaweicloud.com/errorcode-dws/dws_08_0063.html