PostgreSql 报错 ERROR: cannot alter type of a column used by a view or rule¶ 详细:rule _RETURN on view

发布于:2023-09-14 ⋅ 阅读:(112) ⋅ 点赞:(0)

场景:  

PostgreSql 在给某张表的某个字段修改字段长度的时候报错 

举例: 数据库:wms  表:t_user 字段:email

-- 字段 email(100) 扩长到 email(200)
ALTER TABLE wms.t_user ALTER COLUMN email TYPE varchar(200) USING email::varchar;

SQL 错误 [0A000]: ERROR: cannot alter type of a column used by a view or rule¶  详细:rule _RETURN on view wms.t_view_1 depends on column "email"

意思是 wms数据库中的t_view_1视图引用到了 wms.t_user 的 email字段, 此时如果我们修改长度的话就会报错

解决方法: 

执行脚本

SELECT Wms.Deps_Save_And_Drop_Dependencies('wms', 't_user');
 
ALTER TABLE wip.t_user ALTER Column email TYPE VARCHAR(200)
USING location_no ::VARCHAR;
 
SELECT Wms.Deps_Restore_Dependencies('wms', 't_user');

觉得有用的话就给文章点赞收藏吧, 蟹蟹


网站公告

今日签到

点亮在社区的每一天
去签到