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

inserir na atualização de chave duplicada


Acredito que a resposta para isso seja abordada no MySQL documentos :

Se uma tabela contém um AUTO_INCREMENT coluna e INSERT ... UPDATE insere uma linha, o LAST_INSERT_ID() função retorna o AUTO_INCREMENT valor. Se a instrução atualizar uma linha, LAST_INSERT_ID() não é significativo. No entanto, você pode contornar isso usando LAST_INSERT_ID(expr) . Suponha que o id seja o AUTO_INCREMENT coluna. Para fazer LAST_INSERT_ID() significativo para atualizações, insira linhas da seguinte forma:
INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;