MySql的唯一字段是外键

时间:2013-11-12 00:44:58

标签: mysql sql

我不确定是否已经问过这个问题,因为我觉得我的问题不是很清楚......

假设我有这张表:

CREATE TABLE IF NOT EXISTS EntrepriseSpecialites
(
    id_EntrepriseSpecialite INT AUTO_INCREMENT PRIMARY KEY
    ,id_Entreprise INT
    ,id_Specialite INT UNIQUE
);

目前,我的表中只能有一个id_Specialite具有相同的值,但是id_Entreprise只能找到一个唯一的id_Specialite。

示例:

    id_EntrepriseSpecialite | id_Entreprise | id_Specialite
    1 | 1 | 1
    2 | 2 | 1
    3 | 2 | 4
    4 | 2 | 1 <- ops id_Entreprise 2 already have the id_Specialite 1
    5 | 3 | 1

1 个答案:

答案 0 :(得分:1)

为什么不将d_Entrepriseid_Specialite设为c ompound/composite Primary Key,例如:

CREATE TABLE IF NOT EXISTS EntrepriseSpecialites
(
 id_Entreprise INT
 ,id_Specialite INT
 , PRIMARY KEY (id_Entreprise, id_Specialite)
);

请参阅SQLFiddle Demo