我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),
tag
是Amazon Redshift中根据其online manual的保留字。
您可以通过双引号来强制使用:
...
"tag" character varying(50),
...
但是您必须总是用双引号将该列名引起来。较干净的解决方案是避免保留字作为标识符。
[不确定如何以不带引号tag
作为列名来生成该转储。也许使用的pg_dump
版本与数据库版本不匹配?