Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

inserção condicional mysql - se não existir inserção


Use REPLACE - funciona exatamente como INSERT, exceto que se uma linha antiga na tabela tiver o mesmo valor que uma nova linha para um índice PRIMARY KEY ou UNIQUE, a linha antiga será excluída antes que a nova linha seja inserida.

http://dev.mysql.com/doc/refman/5.0 /en/replace.html
-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345) 

Edit:Como você não pode usar REPLACE, outra opção é:definir índices de restrição para os dados da tabela (chave primária, exclusividade) e usar INSERT IGNORE
INSERT IGNORE INTO table_name
SET name = 'phill',
    value = 'person',
    id = 12345;