簡體   English   中英

主鍵約束中的Postgresql用戶定義類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM