SQL使用函数给多个分表添加同一字段

数据库中分表时,往往需要向多个分表中添加同一个字段,可以定义一个函数,每次调用这个函数向多个份表中添加同意字段。

1、创建函数示例:

在PostgreSQL中创建一个简单的函数

以下是一个在PostgreSQL中创建函数的简单示例,该函数接受两个整数作为输入并返回它们的和:

CREATE OR REPLACE FUNCTION add_numbers(a integer, b integer)  
RETURNS integer AS 
$$
  
BEGIN  
    RETURN a + b;  
END;  

$$
 LANGUAGE plpgsql;

在navicat中执行后,在函数中可以看到

使用函数

SELECT add_numbers(3, 4);

 2、使用函数给多个分表添加同一字段

定义函数,向表名称中包含特定字段的表中添加字段的函数,

CREATE OR REPLACE FUNCTION alter_field_fb(tablename varchar, fieldname varchar, new_datatype varchar, fieldcomment varchar)    
RETURNS text AS   

$$
  
DECLARE    
    _record text;    
BEGIN    
    FOR _record IN SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name LIKE '%' || tablename || '%' LOOP    
        BEGIN    
            IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = _record AND column_name = fieldname) THEN    
                EXECUTE 'ALTER TABLE public."' || _record || '" DROP COLUMN "' || fieldname || '"';    
            END IF;    
            EXECUTE 'ALTER TABLE public."' || _record || '" ADD COLUMN "' || fieldname || '" ' || new_datatype;    
            IF fieldcomment IS NOT NULL AND fieldcomment <> '' THEN  
                EXECUTE 'COMMENT ON COLUMN public."' || _record || '"."' || fieldname || '" IS ' || quote_literal(fieldcomment);  
            END IF;  
        EXCEPTION    
            WHEN OTHERS THEN    
                RETURN 'Failed to alter table ' || _record || ': ' || SQLERRM;    
        END;    
    END LOOP;    
    RETURN 'SUCCESS';    
END;    

$$
  
LANGUAGE plpgsql VOLATILE;

 使用函数

SELECT "public".alter_field_fb('procedure', 'remark', 'varchar(255)','备注');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值