【发布时间】:2016-02-22 05:02:38
【问题描述】:
我很好奇是否有办法插入 MySQL 并避免重复。我知道实现它的三种主要方法。替换、插入忽略或插入重复键。我相信这些中的每一个都依赖于一个唯一的主键,这对我来说是一个自动增量 id 字段。这个 id 字段对于我的特定插入需求没有任何值,而是我想检查一些字段是否包含相同的值,如果不保险
例如:
INSERT INTO table (name, team, email) VALUES (:n, :t, :e)
如果我有三个这样的数据集
1) array (":n" => "john doe", ":t" => 1, ":e" => john@doe.com);
2) array (":n" => "Jane doe", ":t" => 1, ":e" => john@doe.com);
3) array (":n" => "john doe", ":t" => 1, ":e" => john1@doe.com);
4) array (":n" => "john doe", ":t" => 2, ":e" => john1@doe.com);
假设表中没有值
将插入 1、3 和 4,但不会插入 2,因为团队和电子邮件不是唯一的
我知道我可以创建第四列并将电子邮件和团队添加到其中并创建一个唯一值并使用它,但是我不希望这样做,因为它是冗余数据。
谢谢
【问题讨论】: