PostgreSQL简单的动态SQL语句

       今天在做项目时发现已部署的项目的数据库表中当初设计的表字段长度太短,导致有时数据不能正常录入,数据库中已有大批量的用户数据所以不能删库重建,所以需要动态的去修改已有的表字段属性。该数据库中几乎所有表都有该字段,所有需要每个表都去执行一条更改字段属性的SQL语句,数了数一共近百个表,而且在修改表字段属性时必须删除与该表关联的视图,在修改后再新建该视图,好吧,这下来要写多少SQL语句,还好问了某位牛人之后最起码修改100个表的字段属性的SQL和删除80个视图的SQL可分别通过一个SQL语句一次获取到,下面就是两条相关SQL语句,记录与此作为备忘记录。


动态生成删除piblic模式下的所有视图SQL;

select 'drop view '||viewname||';' from pg_views where schemaname='public'

动态生成将public模式下所有表的primary_pollutant长度设为50的SQL

select 'alter table '||tablename||' alter column primary_pollutant TYPE varchar(50);'  from pg_tables t where schemaname='public';


  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值