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

MYSQL:Obtendo a chave primária existente ao inserir o registro com a chave exclusiva duplicada?


Se você tiver um UNIQUE index em uma coluna, não importa o que você tentou, o RDMS não permitir duplicatas nessa coluna (exceto para o NULL valor).

Como você disse, existe uma solução para evitar "erro" se isso for anexado. Provavelmente INSERT IGNORE no seu caso.

De qualquer forma, INSERT e UPDATE modificar o banco de dados. MySQL nunca valores de retorno para essas instruções. A única maneira de ler seu banco de dados é usar um SELECT declaração.

Aqui a "solução" é simples, pois você tem um UNIQUE coluna:
INSERT IGNORE INTO tbl (pk, sha_key) VALUES ( ... ), ( ... );
SELECT pk, sha_key FROM tbl WHERE sha_key IN ( ... );
--                                             ^^^
--             Here the list of the sha1 keys you *tried* to insert