仅当特定列中的数据不存在于 table 某处时才插入 MySQL 行

Insert a MySQL row only if the data in the specific columns does not already exists in the table somewhere

已创建以下table:

CREATE TABLE contacts (
    id INT (11) NOT NULL AUTO_INCREMENT,
    email VARCHAR (255) NOT NULL,
    phone VARCHAR (255) NOT NULL,
    url VARCHAR (255) NOT NULL,
    PRIMARY KEY (id, email, phone, url)
); 

目标是仅当电子邮件或该行的 phone 在 table 中某处不存在时才输入新行。

换句话说,如何避免在整个 table 中输入重复的电子邮件或 url 值:如果电子邮件或 phone 已经存在于 table 某处, 不要输入整个新行。

使用哪个脚本?如果是Python条目就更好了。

将两行都定义为 UNIQUE 这样 mysql 就不会让您输入相同的电子邮件地址或号码两次。

但是你不应该让号码唯一,这样两个人可以共享同一个号码。

CREATE TABLE contacts (
    id INT (11) NOT NULL AUTO_INCREMENT,
    email VARCHAR (255) NOT NULL UNIQUE,
    phone VARCHAR (255) NOT NULL UNIQUE,
    url VARCHAR (255) NOT NULL,
    PRIMARY KEY (id, email, phone, url)
);