gpt4 book ai didi

PostgreSQL:在一个函数中插入、删除和更新的 If Else 语句

转载 作者:行者123 更新时间:2023-11-29 13:21:03 24 4
gpt4 key购买 nike

如何将此 SP/函数从 MySQL 转换为 PostgreSQL?

 DELIMITER $$
CREATE DEFINER=`user_name`@`%` PROCEDURE `sp_TABLE_name`(
pTransType int,
pId bigint,
pName varchar(250),
pStartFrom datetime,
pStartTo datetime,
pSignature longblob)
BEGIN

if pTransType = 1 then

insert into TABLE_name (Id, Name, startfrom, startto, signature)
values(pId, pName, pStartFrom, pStartTo, pSignature);

end if;

if pTransType = 2 then

update TABLE_name set
Name = pName,
startfrom = pStartFrom,
startto = pStartTo,
signature = pSignature
where Id = pId;

end if;

if pTransType = 3 then

delete from TABLE_name where id = pId;

end if;

END$$
DELIMITER ;

我尝试了 Case when Statement 但是,其他错误显示..还有其他方法吗?

最佳答案

我认为它看起来像这样:

CREATE OR REPLACE FUNCTION sp_TABLE_name(pTransType int, pId bigint, pName varchar(250),
pStartFrom timestamp, pStartTo timestamp, pSignature bytea)
RETURNS void AS
$BODY$
BEGIN
if pTransType = 1 then

insert into TABLE_name (Id, Name, startfrom, startto, signature)
values(pId, pName, pStartFrom, pStartTo, pSignature);

elsif pTransType = 2 then

update TABLE_name set
Name = pName,
startfrom = pStartFrom,
startto = pStartTo,
signature = pSignature
where Id = pId;

elsif pTransType = 3 then

delete from TABLE_name where id = pId;

end if;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

请注意,我确实必须使您的数据类型符合 PostgreSQL 等效项(或者我对它们的最佳猜测)。

关于PostgreSQL:在一个函数中插入、删除和更新的 If Else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com