sql >> Databasteknik >  >> RDS >> Mysql

MYSQL:Får du befintlig primärnyckel när du infogar post med dubblett av unik nyckel?

Om du har en UNIQUE index på en kolumn, oavsett vad du försökte, kommer RDMS inte att göra det tillåt dubbletter i den kolumnen (förutom NULL värde).

Som du sa, det finns en lösning för att förhindra "fel" om detta läggs till. Förmodligen INSERT IGNORE i ditt fall.

Hur som helst, INSERT och UPDATE ändra databasen. MySQL aldrig returnera värden för dessa uttalanden. Det enda sättet att läsa din DB är att använda en SELECT uttalande.

Här är "lösningen" enkel, eftersom du har en UNIQUE kolumn:

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


  1. Ändringar av Oracle SQL-exekveringsplanen på grund av SYS_OP_C2C intern konvertering

  2. Värden som upprepas vid fyllning av en JTable

  3. Hur man snyggt formaterar utskriften av SQL-frågor i SQLAlchemy?

  4. Hur man får kolumnvärden i ett kommaseparerat värde