我对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;