首页 > 其他分享 >MogDB-opengauss存储过程的修改

MogDB-opengauss存储过程的修改

时间:2024-03-15 15:25:26浏览次数:22  
标签:存储 数据类型 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/renxyz/p/18075449

相关文章

  • MogDB-openGauss访问控制简介
    MogDB/openGauss访问控制简介SQL可以针对不同的数据库对象赋予不同的权限,这样就可以限制用户对数据的不必要访问,提高数据访问的安全性。常见的SQL权限如下:SELECT/UPDATE/DELETE/INSERT:访问、修改基本表或视图的权限REFERENCES:在基本表上创建外键约束的权限TRIGGER:在基本......
  • MogDB-openGauss触发器简介(1)
    MogDB/opengauss触发器简介(1)触发器是对应用动作的响应机制,当应用对一个对象发起DML操作时,就会产生一个触发事件(Event)。如果该对象上拥有该事件对应的触发器,那么就会检查触发器的触发条件(Condition)是否满足,如果满足触发条件,那么就会执行触发动作(Action)。事件:触发器的触发事......
  • MogDB-openGauss存储过程的声明
    MogDB/openGauss存储过程的声明存储过程是一组SQL语句和逻辑控制的集合。数据库系统需要支持创建、删除和修改存储过程的语法。存储过程相比普通的SQL命令,具有如下优点:创建的存储过程保存在数据库系统中,在使用时被调出并且在数据库系统本地进行编译执行,一次编译,多次执行,......
  • MogDB openGauss如何实现事务的rollback
    MogDB/openGauss如何实现事务的rollback本文出处:https://www.modb.pro/db/113262数据库最主要的功能就是存储数据,然而我们在进行数据库操作时,却很容易发生误操作数据的情况,那么在MogDB中该如何实现误操作数据恢复呢?本文通过具体示例简要介绍如何通过回滚还原到误操作前的状......
  • MogDB openGauss数据完整性约束简介
    MogDB/openGauss数据完整性约束简介本文出处:https://www.modb.pro/db/124910创建基本表的同时,还可以指定表中数据完整性约束,例如在创建warehouse基本表时,通过分析可以得到如下结论:不同仓库必须有不同的w_id,且w_id不能为NULL。仓库必须有具体的名称,不能为NULL。仓库......
  • MogDB-openGauss触发器简介(2)
    MogDB/opengauss触发器简介(2)针对触发对象的触发事件一旦发生,就会激活触发器,触发器首先会检查触发条件,只有在满足触发条件的情况下,才会被真正地执行。其中元组级的触发器可以将更新前后的值嵌入到触发器的触发条件中。NEW.column_name:UPDATE或INSERT事件对应“新”元组,colu......
  • 聊一聊 MySQL 的 InnoDB 存储引擎以及三种日志
    楔子上一篇文章我们介绍了MySQL的基本架构,这里再来回顾一下。整个架构还是很好理解的,我们说MySQL分为Server层和存储引擎层。其中Server层包含了MySQL的大多数核心服务功能,而存储引擎层则负责提供数据的存储和读取,并且是插件式的,一个Server层支持不同的存储引擎层......
  • 【PG】ora2pg 分别导出表,索引,存储过程等
    #!/bin/bash#检查ora2pg命令是否可用command-vora2pg>/dev/null2>&1||{echo>&2"ora2pg工具未安装或未在PATH中。请先安装并配置好ora2pg工具。";exit1;}#配置文件路径ora2pg_conf="/path/to/ora2pg.conf"#导出表结构和数据echo"导出表结构和数据..."......
  • 数据在内存中的存储
    一、整数在内存中的存储1.1原码、反码、补码    整数的二进制表示方法有三种,即:原码、反码、补码。    有符号的整数,三种表示方法均有数值位和符号位两部分,其中0表示正,1表示负,最高位的一位被称作是符号位,其余的均为数值位。    正数的原码、反码、......
  • 【MySQL】 深入了解InnoDB存储引擎的限制
    目录前言1.mysql限制1.1列数限制1.2对全列索引键的限制1.3行大小限制1.4表空间大小限制1.5表数量限制2.mysql中的char与varchar2.1varchar类型的变化 2.1.1存储限制2.1.2编码长度限制2.1.3行长度限制2.2CHAR(M),VARCHAR(M)不同之处2.3VARCHAR和TEXT、BlOB类型......