我想在Postgres函数中传递一个表名作为参数.我试过这段代码:
CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer
AS $$
BEGIN
IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN
return 1;
END IF;
return 0;
END;
$$ LANGUAGE plpgsql;
select some_f('table_name');
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
ERROR: syntax error at or near "."
LINE 4: ...elect * from quote_ident($1) where quote_ident($1).id=1)...
^
********** Error **********
ERROR: syntax error at or near "."
Run Code Online (Sandbox Code Playgroud)
以下是更改为此时出现的错误select * from quote_ident($1) tab where tab.id=1
:
ERROR: column tab.id does not exist
LINE 1: ...T EXISTS …
Run Code Online (Sandbox Code Playgroud) 是否可以定义默认情况下创建新表的模式?(由"不合格的表名称"引用.)
我已经看到了在Postgres中使用"搜索路径"的一些细节,但我认为它只在检索数据时有效,而不是创建.
我有一堆SQL脚本,它们创建了许多表.我没有修改脚本,而是希望默认情况下在特定模式中设置数据库创建表 - 当它们具有非限定名称时.
这可能吗?
我有一个表,此表上的列包含一些记录的空格.现在我需要将数据移动到另一个表并用NULL
值替换空格.
我试着用:
REPLACE(ltrim(rtrim(col1)),' ',NULL)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它会将所有值转换col1
为NULL
.我只想将那些具有空格的值转换为NULL
.
有没有办法如何将以下结果转换为数组?
select pg_tables from pg_tables
Run Code Online (Sandbox Code Playgroud)
这将仅返回一列,但数据类型不是数组.
编辑:我正在使用PostgreSql 9.1.4
更新:我需要等效的以下SQL语句,而不需要编写适用于每个表的列名:
select
string_to_array(
schemaname || '|' ||
tablename || '|' ||
tableowner || '|' ||
coalesce(tablespace,'') || '|' ||
hasindexes || '|' ||
hasrules || '|' ||
hastriggers
,'|')
from
pg_tables
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的临时方式来ILIKE
对表的所有文本列执行查询?
我知道有一个包含“foobar”的单元格。但是该表有很多列并且只有 50k 行,因此搜索所有列和行应该很快。
我有一个带有长文本列的表.我希望能够选择所有列但限制文本列而无需编写每一列.
select * from resources;
Run Code Online (Sandbox Code Playgroud)
产生的输出太长而无法在psql中正确显示.我可以通过使用substr()
或left()
在长列上显示某些内容,但之后我需要指定每列.
select id, left(data, 50), file_format_version, ... from resources;
Run Code Online (Sandbox Code Playgroud)
当我查询第一个时,是否有一种方法可以让psql默认截断长列select * from resources
?
在我的数据库中有许多文本列,其中值是空字符串 ( ''
)。空字符串需要设置为NULL
. 我不知道这个数据库中的确切模式、表和列,或者我想编写一个可以重用的通用解决方案。
我将如何编写查询/函数来查找所有模式中所有表中的所有文本列,并将所有带有空字符串 ( ''
) 的列更新为NULL
?
postgresql ×6
dynamic-sql ×3
sql ×3
plpgsql ×2
function ×1
identifier ×1
is-empty ×1
null ×1
psql ×1
schema ×1
search-path ×1
select ×1
sql-like ×1
sql-server ×1