Si vous avez un UNIQUE
index sur une colonne, peu importe ce que vous avez essayé, le RDMS ne le fera pas autoriser les doublons dans cette colonne (sauf pour le NULL
valeur).
Comme vous l'avez dit, il existe une solution pour éviter les "erreurs" si cela s'ajoute. Probablement INSERT IGNORE
dans votre cas.
Quoi qu'il en soit, INSERT
et UPDATE
modifier la base de données. MySQL jamais valeurs de retour pour ces instructions. La seule façon de lire votre DB est d'utiliser un SELECT
déclaration.
Ici, la "solution de contournement" est simple, puisque vous avez un UNIQUE
colonne :
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