2011-07-05 12 views
2

私はWindowsのPostgresの上で動作しますが、上のMac OS用のpostgresにドメインの作成時にシリアルタイプがポストグルで動作しない?

SERIAL PRIMARY KEYとしてドメインpkey_domain次のCREATE文を持って、Mac OS XでのPostgres 9との奇妙な問題に遭遇してきました。

戻り

エラー:タイプ "シリアル"

存在しません*** エラー ** *

ERROR:タイプ "シリアル" はありません存在しない SQLの状態:42704

SERIALはポストグルによってサポートされているデータ型です。なぜそれを使ってドメインを作成できないのですか? Mac上のdeafultインストーラはタイプを作成しませんか?

+0

私はちょうどPCでテストしましたが、私は同じエラーがありますので、MACの問題ではありません。 – ams

答えて

4

シリアルは実際にはタイプではありません。シリアルはあなたのためのシーケンスを作成し、カラムのデフォルト値を設定するマクロの一種です.pg_typeでは参照されません。だから、このように使うことはできません。

+2

+1ここには、ドキュメント[ –

+0

への[link](http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL)があります私は実際にすべてのテーブルに同じサロゲートキーを持たせたいと思っています。ドメインはそれを行う正しい方法です。私は手でシーケンスを作成する必要はありません。 – ams

+0

「シリアルプライマリキー」の入力が多すぎますか?自動的にシーケンスが作成されます。 – peufeu