[英]Postgresql User Defined Type in primary key constraint
我在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主鍵(my_data.field1);
我嘗試使用(my_data).field1,但也收到語法錯誤。
如果我僅在約束中使用my_data,則不會出現錯誤:
ALTER TABLE my_table ADD CONSTRAINT pk_my_table PRIMARY KEY (my_data);
但是我只想使用一個字段作為約束的一部分。
感謝您的任何想法。
我使用Google找到了這個問題,我敢肯定已經死了,但我仍然想回答這個問題,因為其他人可能會看到它。
簡短的答案是您必須使用字段名稱 :
ALTER TABLE "public"."carga" ADD CONSTRAINT "pk_my_table" PRIMARY KEY ("field1");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.