我有一个像
这样的功能块DO $$
DECLARE tran_year RECORD;
BEGIN
FOR tran_year IN SELECT * FROM tbale1 loop
EXECUTE 'ALTER TABLE mytable ADD CONSTRAINT unique_cons$$aaf1c86 UNIQUE (samplecol)';
END LOOP;
END $$;
在Postgres中,当我试图执行这个块时,我遇到了一个问题:ERROR:syntax error at or near "aaf1c86"
。
我还需要在约束名称中使用$$
。有任何想法克服这个错误
答案 0 :(得分:1)
As documented in the manual如果使用相同的序列来结束字符串文字,则可以使用$
符号之间的任何字符序列。
所以只需在外面使用不同的$$
:
DO $doblock$
DECLARE tran_year RECORD;
BEGIN
FOR tran_year IN SELECT * FROM tbale1 loop
EXECUTE 'ALTER TABLE mytable ADD CONSTRAINT unique_cons$$aaf1c86 UNIQUE (samplecol)';
END LOOP;
END $doblock$;