我可以在 MySQL 中使用多个字段作为 IGNORE 限定符来执行 INSERT IGNORE 吗?

T. *_*nes 4 mysql indexing select insert

我有一个 MySQL 表,如下所示:

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`company_id` int(8) unsigned NOT NULL,
`term_type` varchar(255) NOT NULL DEFAULT '',
`term` varchar(255) NOT NULL DEFAULT '',
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这一点......

INSERT IGNORE INTO table ( company_id, term_type, term )
VALUES( a_company_id, 'a_term_type', 'a_term' )
Run Code Online (Sandbox Code Playgroud)

...但我希望当 company_id、term_type 和 term 的相同组合已存在时忽略插入。我知道,如果我在尝试插入重复值时在单个字段上有唯一索引,则插入将被忽略。有没有办法完成我正在尝试的组合?我可以使用多列索引吗?

我试图避免SELECT在每次插入之前检查此组合。当我正在将数亿行数据处理到该表中时。

Ari*_*ion 5

也许是这样的:

ALTER TABLE table ADD UNIQUE (company_id, term_type,term);
Run Code Online (Sandbox Code Playgroud)