Postgresql用户定义主键约束中的类型

时间:2014-09-05 18:03:10

标签: postgresql

我在Ubuntu 12.04上使用postgresql 9.1。我有一个用户定义的类型作为表的一列。当我创建主键约束时,我得到语法错误。 这是我用psql创建表的示例sql脚本:

CREATE TYPE my_type AS
(
  field1 integer,
  field2 integer
);

CREATE TABLE my_table
(
  my_data my_type,
  other_data integer
);
ALTER TABLE my_table ADD CONSTRAINT pk_my_table PRIMARY KEY (my_data.field1);

我收到此错误:

  

错误:“。”或附近的语法错误   第1行:...添加附加设施pk_my_table PRIMARY KEY(my_data.field1);

我尝试过使用(my_data).field1但也会出现语法错误。

如果我只是在约束中使用my_data,则没有错误:

ALTER TABLE my_table ADD CONSTRAINT pk_my_table PRIMARY KEY (my_data);

但我想只使用一个字段作为约束的一部分。

感谢任何想法。

1 个答案:

答案 0 :(得分:0)

我使用谷歌发现了这个问题,我很确定已经死了,但我仍然想回答它,因为其他人可能会看到它。

简短回答你必须使用字段的名称

vw_Lab_Space