2

私は3つのテーブルを持っています:ModelingAgency.clients、、。3つのテーブルすべてに、と呼ばれる主キー列があります。ModelingAgency.modelsModelingAgency.Bookingsid

テーブルbookingsには、とを参照する2つの列がclientsありmodelsます。bookingspgAdminで、いずれclientsかに外部キーを作成しようとするとmodels、次の画面が表示されます。

画面1

画面2

私はここで何を見落としていますか?私は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";
4

1 に答える 1

3

投稿されたDDLコードを調べると、テーブルの名前が間違った方法で記述されていることがわかります(これにより、pgAdminで問題が発生します)。

"ModelingAgency.bookings"

次の形式である必要があります"schema"."tableName"

"ModelingAgency"."bookings"

その後、オブジェクトブラウザは次のようになります(おそらく、最初にpgAdminまたはCREATE SCHEMASQLステートメントを使用してスキーマを簡単に作成する必要があります)。

ここに画像の説明を入力してください

OIDSこれが動作中のDDLコードです(となどのいくつかを省略OWNER 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)
)
于 2011-07-12T22:27:38.417 に答える