我想知道 UNIQUE 约束的含义,它是一个生成的脚本,它涉及赞助,它不一定是?
CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt, id_pers_cpt_PERSONNE_COMPTE)
桌子:
CREATE TABLE PARRAINAGE
(
id_parrainage Int Auto_increment NOT NULL ,
date Date NOT NULL ,
id_pers_cpt Int NOT NULL ,
id_pers_cpt_PERSONNE_COMPTE Int NOT NULL ,
id_etab Int,
CONSTRAINT PARRAINAGE_PK PRIMARY KEY (id_parrainage)
,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_FK FOREIGN KEY (id_pers_cpt) REFERENCES PERSONNE_COMPTE(id_pers_cpt)
,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE0_FK FOREIGN KEY (id_pers_cpt_PERSONNE_COMPTE) REFERENCES PERSONNE_COMPTE(id_pers_cpt)
,CONSTRAINT PARRAINAGE_ETABLISSEMENT1_FK FOREIGN KEY (id_etab) REFERENCES ETABLISSEMENT(id_etab)
,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt)
)ENGINE=InnoDB;
该表似乎涉及两个人:
- id_pers_cpt
- id_pers_cpt_PERSONNE_COMPTE
约束
CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt)
确保id_pers_cpt
只能在表中出现一次。因此id_pers_cpt_PERSONNE_COMPTE
可以与许多id_pers_cpt
有关,但一个id_pers_cpt
只能与一个id_pers_cpt_PERSONNE_COMPTE
相关。
这使它成为一个pers_cpt
表,每个id_pers_cpt
一条记录。如果要允许id_pers_cpt
与多个id_pers_cpt_PERSONNE_COMPTE
相关,则需要您提到的约束:
CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt, id_pers_cpt_PERSONNE_COMPTE)
-
UNIQUE 约束确保列中的所有值都是 不同。
唯一约束和主键约束都提供了保证 一列或一组列的唯一性。
主键约束自动具有唯一约束。
但是,每个表可以有多个 UNIQUE 约束,但只能有一个 每个表的主键约束。
在您的表中id_parrainage
主键和唯一键id_pers_cpt
两者都永远不会重复
id_parrainage
列将不允许空值,也不允许空值id_pers_cpt
将不允许空值