相关疑难解决方法(0)

在PostgreSQL中插入带单引号的文本

我有一张桌子test(id,name).

我需要插入样值: user's log,'my user',customer's.

 insert into test values (1,'user's log');
 insert into test values (2,''my users'');
 insert into test values (3,'customer's');
Run Code Online (Sandbox Code Playgroud)

如果我运行上述任何语句,我会收到错误.

如果有任何方法可以正确地做到这一点请分享.我不想要任何准备好的陈述.

是否可以使用sql转义机制?

postgresql quotes insert special-characters

377
推荐指数
5
解决办法
32万
查看次数

在 DO 块内使用由 psql 元命令设置的变量

这是我想做的事情:

\set values foo,bar,baz

DO $$
DECLARE
    value  TEXT;
    values TEXT[] := string_to_array(:'values', ',');
BEGIN
    FOREACH value IN ARRAY values LOOP
        raise notice 'v: %', value;
    END LOOP;
END $$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

ERROR:  syntax error at or near ":"
SELECT string_to_array(:'values', ',') INTO values...
                       ^
Run Code Online (Sandbox Code Playgroud)

这是我目前的解决方案,但感觉很糟糕:

\set values foo,bar,baz

PREPARE get_values AS SELECT string_to_array(:'values', ',');

DO $$
DECLARE
    value  TEXT;
    values TEXT[];
BEGIN
    EXECUTE 'EXECUTE get_values' INTO values;

    FOREACH value IN ARRAY values LOOP
        raise notice 'v: %', value; …
Run Code Online (Sandbox Code Playgroud)

postgresql session-variables dynamic-sql psql postgresql-9.4

6
推荐指数
1
解决办法
2802
查看次数

有没有“临时功能”之类的东西?

有临时视图和临时表 - 有“临时功能”吗?我有一个函数,我想在事务期间使用,然后丢弃(类似于临时表的用例。)此外,我希望两个并发事务能够使用相同的名称创建相同的函数,而无需锁争用。

postgresql function

1
推荐指数
1
解决办法
3076
查看次数