PostgreSQL存储过程版本控制

PostgreSQL存储过程版本控制,postgresql,Postgresql,我想在Postgres中对存储过程进行版本控制。例如,我尝试做: CREATE OR REPLACE FUNCTION increment(i INT) RETURNS INT AS $$ BEGIN RETURN i + 1; END; $$ LANGUAGE plpgsql; -- An example how to use the function (Returns: 11) SELECT increment(10); 我读了这篇文章 另外,文档搜索路径: 我做设置search\

我想在Postgres中对存储过程进行版本控制。例如,我尝试做:

CREATE OR REPLACE FUNCTION increment(i INT) RETURNS INT AS $$
BEGIN
  RETURN i + 1;
END;
$$ LANGUAGE plpgsql;

-- An example how to use the function (Returns: 11)
SELECT increment(10);
我读了这篇文章

另外,文档搜索路径:

我做
设置search\u path=v10\u 15,public

我想更改退货类型:

 CREATE OR REPLACE FUNCTION increment(i INT) RETURNS VARCHAR(70)
但我得到了一个错误:

第一个删除函数(删除函数增量(整数))


但我不想删除,我需要一个新版本的代码

要重命名函数,请使用
ALTER function
。例如:

ALTER FUNCTION increment RENAME TO v10_15.increment;

如果您实际尝试在新位置创建新函数:

如果在
搜索路径
上已经有一个同名函数,
创建或替换函数
将找到该函数并尝试替换现有函数

不要依赖
search_path
来定义存储内容的位置,而要明确并命名要在其中创建函数的模式:

CREATE OR REPLACE FUNCTION v10_15.increment(i INT) ...

要重命名函数,请使用
alterfunction
。例如:

ALTER FUNCTION increment RENAME TO v10_15.increment;

如果您实际尝试在新位置创建新函数:

如果在
搜索路径
上已经有一个同名函数,
创建或替换函数
将找到该函数并尝试替换现有函数

不要依赖
search_path
来定义存储内容的位置,而要明确并命名要在其中创建函数的模式:

CREATE OR REPLACE FUNCTION v10_15.increment(i INT) ...

在设置搜索路径之前,您可以创建模式; 比如说

创建模式myschema


在设置搜索路径之前,您可以创建模式; 比如说

创建模式myschema


是的,但必须在后端的产品代码中更改其名称。替换了
v10_15上的
increment
。increment
所以您实际上想要替换它,而不是创建一个新过程?但是您想将新的模式移动到新的模式吗?是的,但必须在后端的产品代码中更改其名称。替换了
v10_15上的
increment
。increment
所以您实际上想要替换它,而不是创建一个新过程?但是您想将新模式移动到新模式吗?