amazon-redshift - 在 Redshift 中创建表失败
问题描述
我 pgdumped 了一个 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中的保留字。
您可以通过双引号强制它:
...
"tag" character varying(50),
...
但是,您必须始终双引号该列名。更简洁的解决方案是避免保留字作为标识符。
不确定您是如何使用未引用tag
的列名生成该转储的。也许使用的版本pg_dump
与数据库版本不匹配?
推荐阅读
- java - 如何在 Spring Boot 中访问 kafka 流上下文之外的 GlobalKTable?
- python - pandas:具有条件公式和唯一值的 groupby
- android - 如何在 Jetpack Compose 中打开表情符号键盘?
- amazon-web-services - 为什么使用多容器端点而不是多模型端点?
- javascript - 未捕获的 DOMException:无法在“窗口”上执行“postMessage”:无法克隆 NodeList 对象
- python - Python循环在循环中保存两次到Excel电子表格选项卡
- c# - 使用 Mailgun 和 Httpclient 发送带有附件的电子邮件
- swift - 如何禁用 UIStackView 默认显示/隐藏动画?
- powershell - 递归捕获所有 ADGroup 和成员的 Powershell 脚本
- c# - 将框架升级到 .NET Core 3.1 后出现 Swagger 问题