gpt4 book ai didi

sql - 从函数返回默认的 INSERT INTO 消息

转载 作者:行者123 更新时间:2023-11-29 12:56:16 24 4
gpt4 key购买 nike

寻找打印出插入记录计数的默认 INSERT INTO 消息。知道这与将 RETURNS 从 void 更改为其他内容以及可能添加 OUT 参数有关吗?

CREATE OR REPLACE FUNCTION etl(from_table regclass, to_table regclass) RETURNS void AS
$$
BEGIN

EXECUTE 'INSERT INTO ' || to_table || ' ('
'title'
') '
'SELECT '
'data->>''title'' as title'
'FROM ' || from_table || ' '
USING from_table, to_table;

END
$$ LANGUAGE plpgsql;

最佳答案

使用GET DIAGNOSTICS 命令进行填充,然后返回一个变量:

CREATE OR REPLACE FUNCTION etl(from_table regclass, to_table regclass) RETURNS integer AS
$$
DECLARE
rows integer;
BEGIN
EXECUTE format('INSERT INTO %I (title)
SELECT data->>''title'' as title
FROM %I', to_table, from_table);
GET DIAGNOSTICS rows = ROW_COUNT;
RETURN rows;
END;
$$ LANGUAGE plpgsql;

您还应该真正使用 format() 函数来组装您的动态 SQL 命令。此外,您可以在多行中编写文字字符串,而不必在每一行都使用结束/开始引号。

关于sql - 从函数返回默认的 INSERT INTO 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626824/

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