2011-07-05 54 views
2

我在Mac OS X上遇到Postgres 9的一個奇怪的問題,我有以下語句可用於Windows Postgres,但在Mac OS上運行postgres創建域時,串口類型無法在postgres上工作?

CREATE DOMAIN pkey_domain AS SERIAL PRIMARY KEY;

回報

錯誤:類型 「串行」 不存在

*** 錯誤 ** *

錯誤:類型 「串行」 不不存在 SQL狀態:42704

SERIAL是由postgres支持的數據類型,爲什麼我無法使用它創建域? Mac上的deafult安裝程序是否不創建類型?

+0

我剛剛在PC上測試過,並且出現同樣的錯誤,所以它不是MAC唯一的問題。 – ams

回答

4

串行不是一種真正的類型,它是一種爲您創建序列,設置列的默認值等的宏。它在pg_type中未被引用。所以你不能像這樣使用它。

+2

+1,這裏是[鏈接](http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL)到文檔 – 2011-07-05 14:00:22

+0

有沒有其他辦法來得到我想要的,我真的希望我所有的表具有相同的代理鍵和域似乎是正確的方式來做到這一點,我不想手動創建序列似乎很多打字沒有很好的理由。 – ams

+0

「串行主鍵」輸入太多?它自動爲您創建序列。 – peufeu