Синтаксическая ошибка в целочисленном значении AS или рядом с ним при создании последовательности

Я получаю «ошибку в или около целого числа AS» в приведенном ниже коде, когда пытаюсь выполнить с помощью psql.

CREATE SEQUENCE public.auth_group_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

Приведенный выше оператор sql взят из файла резервной копии локальной машины postgres версии 11 и выполняется в EC2 postgres версии 9.3. Я новичок в postgres и понятия не имею, поскольку sql генерируется только postgres, поэтому он должен работать с psql. Заранее спасибо.


person Manish Gupta    schedule 12.01.2019    source источник


Ответы (2)


Postgres 9.3 (который больше не поддерживается) не поддерживал параметр AS data_type. Это было введено в версии 10.

Вы можете попробовать использовать pg_dump из установки 9.3 для создания дампа, но я не уверен, что это сработает.

person a_horse_with_no_name    schedule 12.01.2019

Некоторый обходной путь, который работает для меня. В этом случае вам просто нужно удалить AS integer из файла дампа.

sed 's/    AS integer$//g' your_dump_file.out > tmp.out
mv tmp.out your_dump_file.out
person Stanislav Savchuk    schedule 26.02.2020