Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL:Vorhandenen Primärschlüssel erhalten, wenn Datensatz mit doppeltem eindeutigen Schlüssel eingefügt wird?

Wenn Sie einen UNIQUE haben Index für eine Spalte, egal was Sie versucht haben, das RDMS wird nicht erlaubt Duplikate in dieser Spalte (mit Ausnahme von NULL Wert).

Wie Sie sagten, gibt es eine Lösung, um "Fehler" zu verhindern, wenn dies angehängt wird. Wahrscheinlich INSERT IGNORE in Ihrem Fall.

Wie auch immer, INSERT und UPDATE die Datenbank ändern. MySQL nie Rückgabewerte für diese Anweisungen. Die einzige Möglichkeit, Ihre DB zu lesen, ist die Verwendung eines SELECT Aussage.

Hier ist der "Workaround" einfach, da Sie einen UNIQUE haben Spalte:

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