Jetez un œil au sqlfiddle suivant: http://sqlfiddle.com/#!2/dacb5/1
CREATE TABLE contacts
(
id int auto_increment primary key,
name varchar(20),
network_id int,
network_contact_id int
);
INSERT INTO contacts
(name, network_id, network_contact_id)
VALUES
('John', 4, 10),
('Alex', 4, 11),
('Bob', 4, 12),
('Jeff', 4, 45),
('Bill', 7, 11),
('Walter', 7, 45),
('Jessie', 7, 360) ;
J'ai une table de base des contacts. Les champs network_id
et network_contact_id
contiennent des numéros d'identification liés à d'autres tables.
Je veux pouvoir exécuter des INSERT IGNORE
requêtes sur cette table, mais je veux utiliser la combinaison de network_id
et network_contact_id
comme clé unique pour la comparaison.
Ainsi, par exemple, si j'essayais d'insérer un contact qui avait network_id = 4
et network_contact_id = 12
, la INSERT IGNORE
requête verrait que l'entrée existe déjà et ignorerait toute erreur levée.
Donc, fondamentalement, ce network_id
n'est pas unique. network_contact_id
n'est pas unique. Mais la combinaison des deux est unique. Comment configurer cela? Dois-je avoir un seul autre champ qui correspond aux valeurs concaténées des deux autres champs? Ou existe-t-il un moyen de configurer les clés de cette table pour qu'elle fasse ce dont j'ai besoin?