2011-07-12 5 views
2

私は3つのテーブル:ModelingAgency.clients,ModelingAgency.models,ModelingAgency.Bookingsを持っています。 3つのテーブルにはすべてidというプライマリキー列があります。pgAdmin - 外部キーを作成しようとすると "参照中"にオプションがありません

bookingsには、clientsmodelsを参照する2つの列があります。私はclientsまたはmodelsのいずれかにbookingsで外部キーを作成しようとすると、pgAdminで、私は次の画面を得る:

Screen One

Screen Two

を私はここで何を望むのですか?私はPostgreSQLを初めて使用しています(これはPostgreSQLの最初のテストプロジェクトです - 私はいつもMySQLと時々SQL Serverを使用していました)ので、おそらく明らかです(私はそれを見ていません)。

編集:ここではあるDDL、要求通り:

-- Table: "ModelingAgency.bookings" 

-- DROP TABLE "ModelingAgency.bookings"; 

CREATE TABLE "ModelingAgency.bookings" 
(
    id integer NOT NULL DEFAULT nextval('"ModelingAgency.Bookings_id_seq"'::regclass), 
    "clientId" integer NOT NULL, 
    "modelId" integer NOT NULL, 
    "time" timestamp with time zone NOT NULL DEFAULT now(), 
    "location" character varying(100) NOT NULL DEFAULT 'No Location Selected'::character varying, 
    CONSTRAINT "bookingId" PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE "ModelingAgency.bookings" OWNER TO "MyBatisTutorial"; 


-- Table: "ModelingAgency.clients" 

-- DROP TABLE "ModelingAgency.clients"; 

CREATE TABLE "ModelingAgency.clients" 
(
    id integer NOT NULL DEFAULT nextval('"ModelAgency.clients_id_seq"'::regclass), 
    "name" character varying(45) NOT NULL, 
    CONSTRAINT "clientId" PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE "ModelingAgency.clients" OWNER TO "MyBatisTutorial"; 


-- Table: "ModelingAgency.models" 

-- DROP TABLE "ModelingAgency.models"; 

CREATE TABLE "ModelingAgency.models" 
(
    id serial NOT NULL, 
    "name" character varying(45) NOT NULL, 
    CONSTRAINT "modelId" PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE "ModelingAgency.models" OWNER TO "MyBatisTutorial"; 
+1

はあなたがpgAdmin3 + OSとPostgreSQLのバージョンは何を使うのですか? PostgreSQL 9.0を使用してOSX上で動作するバージョン1.12は正常に動作します。 –

+0

これは奇妙に見えます。最新のマイナーバージョン(8.4または9.0.4)のPostgreSQLとそれに対応するpgAdmin3のバージョンを使用しているかどうかを確認してください(最新のバージョンを使用することをお勧めします)。 –

+0

私はちょうど最新バージョンをダウンロードし、これを試す前にインストールしました。 pgAdmin 1.12.3およびPostgreSQL 9.0.4。 – KPthunder

答えて

3

は、私はあなたのテーブルの名前が(pgAdminでのあなたの問題の原因となる)間違った方法で書かれていることがわかり、あなたの投稿DDLコードを見ると:

"ModelingAgency"."bookings" 
:それは形式 "schema"."tableName"にする必要があり
"ModelingAgency.bookings" 

そのオブジェクトブラウザ後

は(おそらくあなたが簡単にpgAdminでまたは使用して最初のスキーマを作成する必要がCREATE SCHEMA SQL文を使用して)次のようになります。

ここenter image description here

取り組んでいるDDLコード(私はOIDSOWNER TOのようないくつかのことを省略しかし、それはあなたの場合には関係ありません、ところでOIDS)デフォルトではfalseです:

DROP TABLE IF EXISTS "ModelingAgency"."bookings"; 
CREATE TABLE "ModelingAgency"."bookings" 
(
    id serial, 
    "clientId" integer NOT NULL, 
    "modelId" integer NOT NULL, 
    "time" timestamp with time zone NOT NULL DEFAULT now(), 
    "location" character varying(100) NOT NULL 
     DEFAULT 'No Location Selected'::character varying, 
    CONSTRAINT "bookingId" PRIMARY KEY (id) 
); 

DROP TABLE IF EXISTS "ModelingAgency"."clients"; 
CREATE TABLE "ModelingAgency"."clients" 
(
    id serial, 
    "name" character varying(45) NOT NULL, 
    CONSTRAINT "clientId" PRIMARY KEY (id) 
); 

DROP TABLE IF EXISTS "ModelingAgency"."models"; 
CREATE TABLE "ModelingAgency"."models" 
(
    id serial NOT NULL, 
    "name" character varying(45) NOT NULL, 
    CONSTRAINT "modelId" PRIMARY KEY (id) 
) 
関連する問題