如果mysql中的表中存在insert,是否忽略insert?

如果mysql中的表中存在insert,是否忽略insert?,mysql,sql,Mysql,Sql,我的表中有6列: Id | Name | Mail id | Gender | Contact Number | father name 在向表中插入数据时,我想检查条件,如姓名、mailid、联系人号码是否已经存在,则不应进行插入,否则应插入记录 任何人都可以建议如何在插入记录时检查条件。您可以在多个列上定义索引,例如: IF NOT EXISTS (SELECT * FROM Table_Name WHERE Condition you are checking) BEGIN INS

我的表中有6列:

Id  | Name | Mail id | Gender | Contact Number | father name
在向表中插入数据时,我想检查条件,如姓名、mailid、联系人号码是否已经存在,则不应进行插入,否则应插入记录


任何人都可以建议如何在插入记录时检查条件。

您可以在多个列上定义索引,例如:

IF NOT EXISTS (SELECT * FROM Table_Name WHERE Condition you are checking)
BEGIN
  INSERT INTO .............   ---<----- Your Insert Statement.....

END
CREATE UNIQUE INDEX arbitrary_index_name ON table_name (Name, mailid, contactnumber);

我也遇到了类似的情况,您可以通过向表中添加唯一约束并使用“insert ignore”语句添加数据来实现这一点

Create table语句:

CREATE TABLE Student (
Id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(50),
Mailid VARCHAR(50),
Gender CHAR,
contactnumber BIGINT,
fathername VARCHAR(50),
UNIQUE(NAME,Mailid,contactnumber));
INSERT IGNORE INTO student(NAME, Mailid,Gender,contactnumber,fathername) VALUES('Shekhar', 's@s.com', 'M', 987654321, 'Joshi');
插入忽略语句:

CREATE TABLE Student (
Id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(50),
Mailid VARCHAR(50),
Gender CHAR,
contactnumber BIGINT,
fathername VARCHAR(50),
UNIQUE(NAME,Mailid,contactnumber));
INSERT IGNORE INTO student(NAME, Mailid,Gender,contactnumber,fathername) VALUES('Shekhar', 's@s.com', 'M', 987654321, 'Joshi');

也许这有助于您:如果元组名称、MailID、ContactNumber应该是唯一的,那么您应该在其上定义一个唯一的索引来强制执行该约束。然后可以使用更简单的INSERT IGNORE。否则,按照穆罕默德·阿里的回答去做。参考下面的链接,如果不存在的话,效果应该很好……欢呼这是当你在看电视和回答问题时发生的事情: