首页 > 其他分享 >MogDB/openGauss存储过程的修改

MogDB/openGauss存储过程的修改

时间:2024-03-26 11:57:59浏览次数:32  
标签:存储 数据类型 MogDB orders new openGauss id

MogDB/openGauss 存储过程的修改
SQL 中没有提供显式的存储过程修改命令,通常需要通过 REPLACE 关键字来指定使用当前的存储过程替代之前的同名存储过程。

将前文定义的存储过程替换为按照地区分组的数量统计,具体语句如下:

MogDB=# CREATE OR REPLACE PROCEDURE warehouse_count()
LANGUAGE SQL
AS
SELECT w_state, w_city, COUNT(*)
FROM warehouse
GROUP BY w_state, w_city;
函数的使用方法和存储过程类似,具体语句如下:

CREATE [ OR REPLACE ] FUNCTION 函数名(
[IN | OUT] 参数1 数据类型;
[IN | OUT] 参数2 数据类型;
...
)
RETURNS 数据类型
LANGUAGE lang_name
AS
DECLARE
变量1 数据类型;
变量2 数据类型;
...
BEGIN
函数程序体
END;
但是函数可以应用在 SQL 语句中,而存储过程必须独立调用,另外函数必须指定返回值。

向 new_orders 表中插入数据,并将 new_orders 中的元组数作为返回值,具体语句如下:

MogDB=# CREATE FUNCTION new_orders_insert_func(
IN o_id INTEGER;
IN d_id INTEGER;
IN w_id INTEGER
)
RETURNS INTEGER
LANGUAGE lang_name
AS
$$
DECLARE
count INTEGER;
BEGIN
INSERT INTO new_orders VALUES(o_id, d_id, w_id);
SELECT COUNT(*) INTO count FROM new_orders;
RETURN count;
END;
$$ LANGUAGE plpgsql;
执行获得返回值:

MogDB=# SELECT new_orders_insert_func(1,1,1);
new_orders_insert_func

          2

(1 row)

标签:存储,数据类型,MogDB,orders,new,openGauss,id
From: https://www.cnblogs.com/helloopenGauss/p/18096321

相关文章

  • MogDB/openGauss访问控制简介
    MogDB/openGauss访问控制简介SQL可以针对不同的数据库对象赋予不同的权限,这样就可以限制用户对数据的不必要访问,提高数据访问的安全性。常见的SQL权限如下:SELECT/UPDATE/DELETE/INSERT:访问、修改基本表或视图的权限REFERENCES:在基本表上创建外键约束的权限TRIGGER:在基本表......
  • openGauss中如何管理表空间
    openGauss中如何管理表空间在openGauss中,表空间是一个目录,在物理数据和逻辑数据间提供了抽象的一层,为所有的数据库对象分配存储空间,里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统。表空间可以存在多个......
  • MogDB/opengauss触发器简介(1)
    MogDB/opengauss触发器简介(1)触发器是对应用动作的响应机制,当应用对一个对象发起DML操作时,就会产生一个触发事件(Event)。如果该对象上拥有该事件对应的触发器,那么就会检查触发器的触发条件(Condition)是否满足,如果满足触发条件,那么就会执行触发动作(Action)。事件:触发器的触发事件,......
  • MogDB/openGauss 3.0 扩容及缩容
    MogDB/openGauss3.0扩容及缩容本文出处:https://www.modb.pro/db/452139一、概述背景信息gs_expansion工具对数据库的备机进行扩容,支持从单机或者一主多备最多扩容到一主八备,本文从一主一备扩容到一主两备。gs_dropnode工具从一主多备的数据库中移除不需要的备机,最多可以......
  • 二、kafka的文件存储机制
    简图: producer将数据写入kafka后,集群需要对数据进行保存。kafka将数据保存在磁盘,kafka初始会单独开辟一块磁盘空间,顺序写入(效率比随机写入高)。 1、partition结构partition在服务器上表现形式是一个个文件夹,生产者将生产的消息不断追加到log文件的末尾,为防止log文件过大......
  • C语言中整数和浮点数在内存中的存储
    一、整数在内存中的存储我们知道整数的二进制表示形式有三种,原码、反码、补码。三种表示方法均由符号位和数值位两部分构成,符号位用0表示正,用1表示负,最高一位被当作符号位,其余位被当作数值位。其中,正整数的原码、反码、补码三种表示相同负整数的原码:对应10进制数直接转换过......
  • 数据在内存中的存储
    一.整数和字符在内存中的存储1.整数的二进制表示有三种形式:原码,反码,补码。    对于整数的二进制表示形式,我们规定:二进制的最高位为符号为,正数最高位为“0”,负数的最高位为“1”。其他位为数值位。    正整数的原码,反码,补码形式一样。   负整数的反......
  • openGauss社区入门(openGauss-常用数据类型)
    常用数据类型数据类型 说明布尔类型 booleantrue/'1'/'yes'false/'0'/'no'数值类型 smallint两字节int4字节bigint8字节double/real浮点型money货币(两位小数||字符类型|varchar(n几位数)/char/text||二进制|bytea||位串类型|一串0、1bit(n)/bit......
  • MogDB/openGauss 3.0 扩容及缩容
    MogDB/openGauss3.0扩容及缩容本文出处:https://www.modb.pro/db/452139一、概述背景信息gs_expansion工具对数据库的备机进行扩容,支持从单机或者一主多备最多扩容到一主八备,本文从一主一备扩容到一主两备。gs_dropnode工具从一主多备的数据库中移除不需要的备机,最多可以......
  • MogDB/openGauss访问控制简介
    MogDB/openGauss访问控制简介SQL可以针对不同的数据库对象赋予不同的权限,这样就可以限制用户对数据的不必要访问,提高数据访问的安全性。常见的SQL权限如下:SELECT/UPDATE/DELETE/INSERT:访问、修改基本表或视图的权限REFERENCES:在基本表上创建外键约束的权限TRIGGER:在基本表......