gpt4 book ai didi

postgresql - SQL : Printing from an UPDATE command

转载 作者:行者123 更新时间:2023-11-29 14:18:49 25 4
gpt4 key购买 nike

假设我有一个简单的 SQL 脚本:

UPDATE my_table
SET data = new_data
WHERE my_table.data IS NULL;

我想打印在 UPDATE 命令中更新的那个 id。所以像这样的功能方面的东西:

UPDATE my_table
SET data = new_data, RAISE NOTICE 'Updated %', my_table.id
WHERE my_table.data IS NULL;

这可能吗?我正在使用 PostgreSQL。

最佳答案

好吧,我想到了这样的事情。

DO language plpgsql $$
DECLARE _id bigint;
BEGIN
FOR _id IN
WITH up AS (
UPDATE my_table
SET data = new_data
WHERE data IS NULL
RETURNING id)
SELECT id from up
LOOP
RAISE NOTICE 'Updated %', _id;
END LOOP;
END
$$;

它有点笨拙,但应该适合你。

首先,RAISE NOTICE 必须像解释的那样包装 here .我找不到如何将多行 (...RETURNING id) 存储到变量中的方法,这对于当前版本可能是不可能的。这就是为什么我让一个选择跟随更新,它本身提供你需要的 RAISE

关于postgresql - SQL : Printing from an UPDATE command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456508/

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