如果不存在则插入MySql

时间:2011-01-12 22:44:01

标签: mysql insert

这是MS SQL代码

    if not exists (select PId from Person
             where Name = 'Name1' and Surname = 'Surname1')
    INSERT INTO [someDb].[dbo].[Person] 
        ([Name] ,[Surname])
    VALUES
        ('Name1' ,'Surname1')
你可以帮我写一下我的sql中的ekvivalent代码吗

感谢

2 个答案:

答案 0 :(得分:3)

假设你有(name,surname)的唯一索引,你可以使用INSERT IGNORE:

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

答案 1 :(得分:1)

在MySQL 中它通常已经完成我通常在看到其他答案之前就已经这样做了

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

在你的情况下,它需要一个UNIQUE索引(Name,Surname)列