sql >> Databáze >  >> RDS >> Mysql

MYSQL:Získání existujícího primárního klíče při vkládání záznamu s duplicitním jedinečným klíčem?

Pokud máte UNIQUE index ve sloupci, bez ohledu na to, co jste zkusili, RDMS nebude povolit duplikáty v tomto sloupci (kromě NULL hodnota).

Jak jste řekl, existuje řešení, jak zabránit "chybě", pokud se toto připojí. Pravděpodobně INSERT IGNORE ve vašem případě.

Každopádně INSERT a UPDATE upravit databázi. MySQL nikdy návratové hodnoty pro tyto příkazy. Jediný způsob, jak číst vaši DB, je použít SELECT prohlášení.

Zde je „řešení“ jednoduché, protože máte UNIQUE sloupec:

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. Jak najít konkrétní řádek ve výsledku dotazu MySQL?

  2. Problémy s aktualizací při vytváření jednoduchého hlasovacího systému PHP, MySql

  3. Automatický přírůstek MySQL za odlišnou hodnotu zadanou v jiném sloupci?

  4. Funkce MAX() nezávislá na databázi v SQLAlchemy