场景:
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');
觉得有用的话就给文章点赞收藏吧, 蟹蟹