使用pgAdmin 3设置外键

时间:2016-08-03 06:23:30

标签: postgresql pgadmin

我对SQL和编程完全陌生。最近下载了PostgreSQL并一直在玩pgAdmin3。我有两个问题。

问题1:

根据下表,我如何创建一个外键到" Ref - Unit Role_Unit Type"使用pgAdmin3? " Ref - Unit ROle_Unit Type"可以包括表中的一个或多个值" Drop - Unit Type_Unit Type"。

CREATE TABLE public."Ref - Unit Role"
(
  "Unit Role" character(20) NOT NULL,
  "RAT Role" character(20),
  "Unit Type" character(20)[],
  CONSTRAINT "Ref - Unit Role_pkey" PRIMARY KEY ("Unit Role"),
  CONSTRAINT "Ref - Unit Role_RAT Role_fkey" FOREIGN KEY ("RAT Role")
      REFERENCES public."Drop - RAT Role" ("RAT Role") MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public."Ref - Unit Role"
  OWNER TO postgres;

问题2: 根据下表,我试图做的是" Unit_Unit Type"通过参考表格#34; Ref - Unit Role"以上," Unit_Unit Role"只会接受" Ref - Unit Role_Unit Role" where" Ref - Unit Role_Unit Type" =" Unit_Unit Type"。这可能吗?

CREATE TABLE public."Unit"
(
  "Unit Type" character(20),
  "Unit Chassis" character(30) NOT NULL,
  "Unit Model" character(20) NOT NULL,
  "Unit Weight" integer,
  "Unit Role" character(20),
  "Unit Production Year" daterange[],
  "Unit Manufacturer" character(30)[],
  CONSTRAINT "Unit_pkey" PRIMARY KEY ("Unit Chassis", "Unit Model"),
  CONSTRAINT "Unit_Unit Chassis_fkey" FOREIGN KEY ("Unit Chassis")
      REFERENCES public."Drop - Unit Chassis" ("Unit Chassis") MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT "Unit_Unit Model_fkey" FOREIGN KEY ("Unit Model")
      REFERENCES public."Drop - Unit Model" ("Unit Model") MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT "Unit_Unit Type_fkey" FOREIGN KEY ("Unit Type")
      REFERENCES public."Drop - Unit Type" ("Unit Type") MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public."Unit"
  OWNER TO postgres;

CREATE TABLE public."Drop - Unit Type"
(
  "Unit Type" character(20) NOT NULL,
  CONSTRAINT "Drop - Unit Type_pkey" PRIMARY KEY ("Unit Type")
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public."Drop - Unit Type"
  OWNER TO postgres;

0 个答案:

没有答案