我在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);
但我想只使用一个字段作为约束的一部分。
感谢任何想法。
答案 0 :(得分:0)
我使用谷歌发现了这个问题,我很确定已经死了,但我仍然想回答它,因为其他人可能会看到它。
简短回答你必须使用字段的名称:
vw_Lab_Space