假设我有一个 PostgreSQL 数据库,其中包含表 A、B 和 C,其中 A 和 B 通过联结表 C 具有多对多关系。这些表具有以下 SQL 定义:
CREATE TABLE A
(
id serial NOT NULL,
CONSTRAINT A_pkey PRIMARY KEY (id)
)
CREATE TABLE B
(
id serial NOT NULL,
CONSTRAINT B_pkey PRIMARY KEY (id)
)
CREATE TABLE C
(
A_id integer NOT NULL,
B_id integer NOT NULL,
CONSTRAINT C_pk PRIMARY KEY (A_id, B_id),
CONSTRAINT A_fk FOREIGN KEY (A_id)
REFERENCES A(id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT B_fk FOREIGN KEY (B_id)
REFERENCES B(id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
现在我想确保每个 A 实例至少有一个 B 实例(换句话说:A 中的每个 id 至少作为 C 中的 A_id 出现一次)。是否可以使用数据库约束检查此属性?