gpt4 book ai didi

linux - 如何使查询在 linux 服务器上工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:51 26 4
gpt4 key购买 nike

我在 PostgreSQL 中有一个名为“myDatabase”的数据库,它有数百个模式并且安装在 Linux 服务器中。我将此数据库用于 SAAS 应用程序。其中有多个模式用户。我想为所选模式更新表中的列值

在名为“销售额”的表中有一个特定列“百分比”,我想更新所有现有用户的列值(架构)。所以我写了一个脚本来更新所有模式中的值,这个脚本在 windows 服务器上工作但是当我试图在 linux 服务器上执行这个脚本时,它显示一个错误

enter code here下面的脚本是我写的,

DO
$do$
DECLARE
_schema text;

BEGIN

FOR _schema IN
SELECT quote_ident(nspname) -- prevent SQL injection
FROM pg_namespace n
WHERE nspname !~~ 'pg_%' and nspname between 'schema1' and 'schema50'
AND nspname <> 'information_schema'
LOOP
EXECUTE 'SET LOCAL search_path = ' || _schema;
UPDATE sales SET sales.Percentage = 15;
END LOOP;

END
$do$

上面的脚本在 windows 服务器上工作,但在 linux 服务器上不工作。报错如下

错误:关系“销售额”的列“销售额”不存在LINE 1: UPDATE sales SET sales.Percentage = 5 ^查询:更新销售额 SET sales.Percentage = 5上下文:PL/pgSQL 函数 inline_code_block 第 10 行在 SQL 语句SQL 状态:42703

任何帮助将不胜感激

最佳答案

不要在更新的列名前指定表名:

UPDATE  sales SET  Percentage = 15

下面是演示这一点的示例:

laika=# create table a (i integer);
CREATE TABLE
laika=# update a set a.i = 1;
ERROR: column "a" of relation "a" does not exist
LINE 1: update a set a.i = 1;
^
laika=# update a set i = 1;
UPDATE 0

关于linux - 如何使查询在 linux 服务器上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56166363/

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