在 Redshift 中创建 table 失败
Failing create table in Redshift
我 pgdump 了一个 redshift table,我正在尝试恢复它。但是,恢复时出现错误。我什至尝试手动 运行 创建 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),
根据 online manual.,tag
是 Amazon Redshift 中的 保留字
你可以通过双引号强制它:
...
"tag" character varying(50),
...
但是你必须总是双引号那个列名。更简洁的解决方案是避免使用保留字作为标识符。
不确定您是如何使用未加引号的 tag
作为列名生成该转储的。也许使用的 pg_dump
版本与数据库版本不匹配?
我 pgdump 了一个 redshift table,我正在尝试恢复它。但是,恢复时出现错误。我什至尝试手动 运行 创建 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 中的 保留字
你可以通过双引号强制它:
...
"tag" character varying(50),
...
但是你必须总是双引号那个列名。更简洁的解决方案是避免使用保留字作为标识符。
不确定您是如何使用未加引号的 tag
作为列名生成该转储的。也许使用的 pg_dump
版本与数据库版本不匹配?