2016-11-15 4 views
1

В pgAdmin при создании нового сценария для таблицы SCRIPTS | CREATE scriptsКак сделать полный Сценарий создания таблицы

Вы получаете что-то вроде

CREATE TABLE public.merchant_tracker_avl 
(
    avl_id bigint NOT NULL DEFAULT nextval('merchant_tracker_avl_avl_id_seq'::regclass), 
    x_lat numeric(10,6) NOT NULL, 
    y_long numeric(10,6) NOT NULL, 
    event_time timestamp without time zone NOT NULL, 
    CONSTRAINT merchant_tracker_avl_pk PRIMARY KEY (avl_id) 
); 

Проблема в другом сервере, где я пытаюсь создать table последовательность не существует.

Так что я должен вручную изменить сценарий для ...

CREATE TABLE public.merchant_tracker_avl 
(
    avl_id serial NOT NULL, 
    .... 

И что сценарий создания таблицы и последовательность.

Итак, как я могу заставить pgAdmin генерировать правильный скрипт, так что не нужно делать такие ручные изменения?

+0

какая версия pgadmin вы используете ? – maahl

+0

@maahl version '1.22.1' поставляется с postgres-9.5 –

+0

Возможно, вам стоит попробовать [обновление до версии 1.1] (https://www.pgadmin.org) (авторы pgAdmin, похоже, не понимают, как номера версий работа ...) – IMSoP

ответ

2

Сценарий, который вы показываете, является тем, что вы получаете, если есть что-то отличное от фактического столбца serial. A serial не является фактическим типом данных, just a convenient syntax shorthand.

pgAdmin делает обратный инженер SQL DDL код с serial, если все критерии выполнены.

Обычно это не OWNED колонкой - который можно восстановить с:

ALTER SEQUENCE merchant_tracker_avl_avl_id_seq 
OWNED BY public.merchant_tracker_avl.avl_id; 

Связанный:

+0

Вы дважды добавляете эту ссылку. Не уверен, что двойной 'control-v' или скопировать неправильную ссылку. –

+0

Это означает, что pgAdmin выполняет обратный инженер только в одном направлении ?. Проблема в том, что я хочу сценарий, чтобы создать таблицу в другом db. Конечно, я могу создать последовательность самостоятельно, но мы все знаем, что происходит, когда вы делаете что-то вручную :( –

+1

Вы можете исправить исходную БД, вы можете исправить SQL-скрипт или исправить целевую БД. Ваш выбор. PgAdmin just показывает, что он находит. Прочтите подробное описание в связанном ответе: - http://stackoverflow.com/questions/14649682/safely-and-cleanly-rename-tables-that-use-serial-primary-key-columns- в-Postgres/14651788 # 14651788 –

 Смежные вопросы

  • Нет связанных вопросов^_^