posgresql数据库中表字段批量添加默认值

  • Post author:
  • Post category:其他


背景:我的postgresql数据库中有一个模式,需要把这个模式下所有的表中字段类型为int2,in4,int8,numeric的字段默认值设置为0,通过编写存储过程的方式实现这一需求。

DO $$ 
DECLARE 
  r RECORD;
BEGIN 
  FOR r IN SELECT table_name, column_name, data_type 
FROM information_schema.columns 
WHERE table_schema = 'db_yw' --这里填写模式名称
AND (data_type = 'numeric' OR data_type like '%int%')  --z需要修改的字段类型
AND column_name NOT IN ('pk_uid', 'id', 'l_id')
  LOOP 
    EXECUTE 'ALTER TABLE ' || r.table_name || ' ALTER COLUMN ' || r.column_name || ' SET DEFAULT 0'; 
  END LOOP; 
END $$;



版权声明:本文为weixin_42101813原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。