我有一张桌子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转义机制?
这是我想做的事情:
\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)
这导致以下错误:
Run Code Online (Sandbox Code Playgroud)ERROR: syntax error at or near ":" SELECT string_to_array(:'values', ',') INTO values... ^
这是我目前的解决方案,但感觉很糟糕:
\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
有临时视图和临时表 - 有“临时功能”吗?我有一个函数,我想在事务期间使用,然后丢弃(类似于临时表的用例。)此外,我希望两个并发事务能够使用相同的名称创建相同的函数,而无需锁争用。