Сбой psql создать таблицу - PullRequest
0 голосов
/ 02 апреля 2020

Я pgdumped таблицу красного смещения, и я пытаюсь восстановить его. однако я получаю ошибку при восстановлении. Я даже пытался запустить команду создания таблицы вручную, и она выдает ошибку. Я не могу понять, что не так. Спасибо.

CREATE TABLE report (
    experiment_id bigint,
    offer_type character varying(50),
    variant_id bigint,
    variant_name character varying(256),
    active_lapsed character varying(10),
    active_lapsed_new character varying(10),
    am_pm_dominance character varying(20),
    channel character varying(50),
    daypart character varying(20),
    marketable boolean,
    tcm character varying(5),
    vip_flag boolean,
    weekly_freq_over_8w double precision,
    product1 integer,
    product2 integer,
    product3 integer,
    product4 integer,
    product5 integer,
    reward1 integer,
    reward2 integer,
    reward3 integer,
    hurdle1 integer,
    hurdle2 integer,
    hurdle3 integer,
    product1_recommender character varying(50),
    product2_recommender character varying(50),
    product3_recommender character varying(50),
    product4_recommender character varying(50),
    product5_recommender character varying(50),
    product1_description character varying(100),
    product2_description character varying(100),
    product3_description character varying(100),
    product4_description character varying(100),
    product5_description character varying(100),
    microsegment integer,
    microsegment_desc character varying(100),
    tag character varying(50),
    error_tag character varying(25),
    vip_email character varying(50),
    count bigint,
    error_message character varying(1024),
    unlimited_redemption boolean,
    push_notification_flags character varying(60),
    weekend_3d_freq_over_8w double precision,
    experiment_group character varying(100),
    created_date date,
    automatic_hurdle_qty boolean DEFAULT false,
    product1_frequency double precision,
    product2_frequency double precision,
    product3_frequency double precision,
    product4_frequency double precision,
    product5_frequency double precision,
    weekly_freq_over_8w_after_2pm double precision,
    weekly_freq_over_8w_before_11am double precision,
    weekly_non_dominant_daypart_freq_over_8w double precision,
    automatic_product_qty boolean DEFAULT false,
    optimization_model character varying(21),
    control_bool boolean
);

Это ошибка, которую я получаю.

ERROR:  syntax error at or near "tag"
LINE 38:     tag character varying(50),

1 Ответ

2 голосов
/ 02 апреля 2020

tag является зарезервированным словом в Amazon Redshift в соответствии с их электронным руководством .

. Вы можете принудительно ввести его в двойных кавычках:

...
"tag" character varying(50),
...

Но тогда вы должны всегда заключать в кавычки имя этого столбца. Более чистое решение - избежать зарезервированных слов в качестве идентификаторов.

Не уверен, как вы создали этот дамп с tag в качестве имени столбца без кавычек. Может быть, используется версия pg_dump, которая не соответствует версии базы данных?

...