Mysql
 sql >> Database >  >> RDS >> Mysql

MYSQL:ottenere la chiave primaria esistente durante l'inserimento di record con chiave univoca duplicata?

Se hai un UNIQUE indice su una colonna, indipendentemente da ciò che hai provato, l'RDMS non consenti duplicati in quella colonna (tranne per NULL valore).

Come hai detto, esiste una soluzione per evitare "errore" se questo si aggiunge. Probabilmente INSERT IGNORE nel tuo caso.

Ad ogni modo, INSERT e UPDATE modificare il database. MySQL mai restituire i valori per queste istruzioni. L'unico modo per leggere il tuo DB è usare un SELECT dichiarazione.

Qui la "soluzione alternativa" è semplice, dal momento che hai un UNIQUE colonna:

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