Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL:Получаване на съществуващ първичен ключ при вмъкване на запис с дублиран уникален ключ?

Ако имате UNIQUE индекс на колона, без значение какво сте опитвали, RDMS няма позволете дубликати в тази колона (с изключение на NULL стойност).

Както казахте, има решение за предотвратяване на "грешка", ако това се добави. Вероятно INSERT IGNORE във вашия случай.

Както и да е, INSERT и UPDATE модифицира базата данни. MySQL никога връща стойности за тези изрази. Единственият начин да прочетете вашата DB е да използвате SELECT изявление.

Тук "заобиколното решение" е просто, тъй като имате UNIQUE колона:

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. C програма mysql връзка

  2. Как да напиша нулево безопасно сравнение <=> в чист SQL?

  3. Разделяне на данни от постоянно добавян файл в нов файл

  4. Незаконен микс от съпоставяния за операция за сравнение дата/час

  5. Съхраняване на структурирани данни в колона от база данни?