Dê uma olhada no seguinte sqlfiddle: 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) ;
Eu tenho uma tabela básica de contatos. Os campos network_id
e network_contact_id
contêm números de identificação vinculados a outras tabelas.
Quero poder executar INSERT IGNORE
consultas nessa tabela, mas quero usar a combinação de network_id
e network_contact_id
como a chave exclusiva para comparar.
Por exemplo, se eu tentasse inserir um contato que tivesse network_id = 4
e network_contact_id = 12
, a INSERT IGNORE
consulta veria que a entrada já existe e ignoraria qualquer erro que fosse lançado.
Então, basicamente, network_id
não é único. network_contact_id
não é único. Mas a combinação dos dois é única. Como faço para configurar isso? Eu precisaria ter um único outro campo com os valores concatenados dos outros dois campos? Ou existe uma maneira de configurar as chaves desta tabela para que ela faça o que eu preciso?