唯一约束 创建表赞助的含义



我想知道 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将不允许空值

最新更新