Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL:Pobieranie istniejącego klucza podstawowego podczas wstawiania rekordu ze zduplikowanym unikalnym kluczem?

Jeśli masz UNIQUE indeks w kolumnie, bez względu na to, co próbowałeś, RDMS nie zezwól na duplikaty w tej kolumnie (z wyjątkiem NULL wartość).

Jak powiedziałeś, istnieje rozwiązanie zapobiegające „błędowi”, jeśli ten się pojawi. Prawdopodobnie INSERT IGNORE w twoim przypadku.

W każdym razie INSERT i UPDATE modyfikować bazę danych. MySQL nigdy zwracają wartości dla tych instrukcji. Jedynym sposobem na odczytanie bazy danych jest użycie SELECT oświadczenie.

Tutaj „obejście” jest proste, ponieważ masz UNIQUE kolumna:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pierwsze trzy grupy z najwyższymi ocenami powinny mieć określone punkty

  2. Jak wstawić wiersz do tabeli, która ma tylko jedną kolumnę autoinkrementacji?

  3. MySQL — zliczanie i grupowanie według

  4. MySQL Błąd 1064 podczas dodawania klucza obcego za pomocą MySQL Workbench

  5. Zapytania Slick 3.0 (scala) nie zwracają danych, dopóki nie zostaną uruchomione wiele razy (chyba)