我想知道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;
答案 0 :(得分:1)
UNIQUE约束确保一列中的所有值都是 不同。
UNIQUE和PRIMARY KEY约束都为 一列或一组列的唯一性。
PRIMARY KEY约束自动具有UNIQUE约束。
但是,每个表可以有许多UNIQUE约束,但是只有一个 每个表的PRIMARY KEY约束。
在您的表id_parrainage
主键和id_pers_cpt
唯一键中,永远不会重复
id_parrainage
列将不允许为空值,并且
id_pers_cpt
不允许为空值
答案 1 :(得分:0)
表似乎关联了两个人:
约束
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)