if not exists insert in MySql

2019-02-25 04:28发布

问题:

This is MS SQL code

    if not exists (select PId from Person
             where Name = 'Name1' and Surname = 'Surname1')
    INSERT INTO [someDb].[dbo].[Person] 
        ([Name] ,[Surname])
    VALUES
        ('Name1' ,'Surname1')

can you please help me to write ekvivalent code in for my sql

thanks

回答1:

Assuming you have a unique index on (name,surname), you can use INSERT IGNORE:

INSERT IGNORE INTO `someDb`.`Person` 
        (`Name` ,`Surname`)
    VALUES
        ('Name1' ,'Surname1')


回答2:

In MySQL it's usually done I was usually doing it before I saw the other answer with

INSERT INTO table (fields) VALUES (values) ON DUPLICATE KEY UPDATE ID=ID;

In your case it would require a UNIQUE index on (Name,Surname) columns



标签: mysql insert