当前位置: 首页 > news >正文

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)','备注');

http://www.lryc.cn/news/354843.html

相关文章:

  • OpenAI 再次刷新认知边界:GPT-4 颠覆语音助手市场,流畅度直逼真人互动?
  • UE5 使用外置摄像头进行拍照并保存到本地
  • 【C++】从零开始map与set的封装
  • Python可以声明并赋值一个hash类型变量吗?
  • 苗情灾情监控系统—提高农业生产效率
  • wpf自定义按钮样式
  • Meme币总市值突破630亿美元 以太坊ETF获批意味着代币化资产“完全安全”
  • MySQL数据库语法(二)
  • Linux makefile
  • 信息安全基础知识
  • 【数据结构】链式二叉树(超详细)
  • 排序题目:最小绝对差
  • 沃飞携AE200真机亮相澳门,全方位赋能城市低空出行
  • 判断当前系统是linux、windows还是MacOS (python)
  • Minikube部署单节点Kubernetes
  • leetcode-顺时针旋转矩阵-111
  • 解决GoLand无法Debug
  • 云原生周刊:K8s 上的 gRPC 名称解析和负载平衡
  • 从0开始回顾ElasticSearch
  • 小阿轩yx-Shell编程之条件语句
  • MyBatis-Plus 从入门到精通
  • 爬虫利器Frida RPC入门——夜神模拟器环境篇
  • 猫狗分类识别模型建立①数据标记
  • FME学习之旅---day28
  • vue3项目中字典和全局方法的创建与使用
  • 51-54 Sora能制作动作大片还需要一段时间 | DrivingGaussian:周围动态自动驾驶场景的复合高斯飞溅
  • 数据挖掘实战-基于余弦相似度的印度美食推荐系统
  • 深入探索DreamFusion:文本到3D生成的革命性技术
  • JSP期末要点复习
  • AJAX(JavaScript版本)