Я сильно запутался в использовании переменных в postgres.Из командной строки psql я выполнил:
DO $$
DECLARE
NEW_SCHEMA TEXT:= 'myschema';
BEGIN
RAISE NOTICE 'Value of NEW_SCHEMA: %', NEW_SCHEMA; -- A
DROP SCHEMA IF EXISTS NEW_SCHEMA; -- B
CREATE SCHEMA IF NOT EXISTS NEW_SCHEMA; -- C
END$$;
Дает мне:
NOTICE: Value of NEW_SCHEMA: myschema
NOTICE: schema "new_schema" does not exist, skipping
DO
... так что ... при A
, NEW_SCHEMA
интерпретируетсякак переменная, но в B
и C
она интерпретируется как литерал, и создается новая схема с именем NEW_SCHEMA
.
Как мне получить psql для интерпретации переменных как переменныхне как литералы.