Redshift中的创建表失败

问题描述 投票:0回答:1

我pgdump一个redshift表,我正在尝试恢复它。但是,还原时出现错误。我什至尝试手动运行create table命令,它会产生错误。我不知道怎么了。谢谢。

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),
amazon-redshift ddl
1个回答
2
投票

tag是Amazon Redshift中根据其online manual保留字

您可以通过双引号来强制使用:

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

但是您必须总是用双引号将该列名引起来。较干净的解决方案是避免保留字作为标识符。

[不确定如何以不带引号tag作为列名来生成该转储。也许使用的pg_dump版本与数据库版本不匹配?

© www.soinside.com 2019 - 2024. All rights reserved.