看看下面的 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) ;
我有一个基本的联系人表。network_id
和network_contact_id
字段包含链接到其他表的ID 号。
我希望能够INSERT IGNORE
对此表运行查询,但我想使用network_id
and的组合network_contact_id
作为匹配的唯一键。
因此,例如,如果我尝试插入具有network_id = 4
and的联系人network_contact_id = 12
,INSERT IGNORE
查询将看到该条目已经存在,并忽略引发的任何错误。
所以基本上,network_id
不是唯一的。network_contact_id
不是唯一的。但两者的结合是独一无二的。我该如何设置?我是否必须有一个其他字段是其他两个字段的连接值?或者有没有办法为这个表设置键,这样它就可以满足我的需要?
你试过了吗
UNIQUE KEY
通过对两列的组合添加约束来更改表的定义:您还应该检查 Bill Karwin 的这个答案,了解
INSERT IGNORE
,REPLACE
和INSERT ... ON DUPLICATE KEY UPDATE