忽略插入如果存在于mysql中的表中?

时间:2013-11-17 17:19:37

标签: mysql sql

我的表中有6列:

Id  | Name | Mail id | Gender | Contact Number | father name

在将数据插入表格时,我想检查条件,如果Name,mailid,contact number已经存在,那么插入不应该发生,否则应该插入记录。

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

3 个答案:

答案 0 :(得分:1)

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

END

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我也遇到过类似情况,您可以通过在表格中添加唯一约束并使用&#39; insert ignore&#39;声明添加数据。

创建表语句:

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');