Redshift:定义复合主键

11

我有一个表,想在redshift中定义由两列组成的复合主键。我用create table语句尝试时遇到了一些问题。以下是我正在尝试的内容:

Create table metrics  (
     id varchar(30),
     runtime timestamp,
     category varchar(30),
     location varchar(30),
     PRIMARY KEY(id, runtime),
     sortkey(runtime)
);

出现错误信息:

ERROR:  syntax error at or near "PRIMARY"

请问有谁能帮我解决这个问题吗?提前致谢。

1个回答

24

主键约束位于包含列的括号内:

Create table metrics  (
     id varchar(30),
     runtime timestamp,
     category varchar(30),
     location varchar(30),
     primary key(id, runtime)
)
sortkey(runtime);

我按照你提到的方法尝试了。创建表格很顺利。但是当我尝试将数据加载到表格中时,出现了以下错误: 不允许有多个主键。 - Santanu C
1
根据文档(http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html),*复合*主键是允许的,而且答案的语法是正确的。你不能在一个表上有多个主键,无论是你的问题还是我的答案都没有多个主键。 - Gordon Linoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接