Nếu bạn có UNIQUE
lập chỉ mục trên một cột, bất kể bạn đã thử điều gì, RDMS sẽ không cho phép các bản sao trong cột đó (ngoại trừ NULL
giá trị).
Như bạn đã nói, có giải pháp để ngăn chặn "lỗi" nếu điều này xảy ra. Có thể là INSERT IGNORE
trong trường hợp của bạn.
Dù sao, INSERT
và UPDATE
sửa đổi cơ sở dữ liệu. MySQL không bao giờ trả về giá trị cho các câu lệnh này. Cách duy nhất để đọc DB của bạn là sử dụng SELECT
tuyên bố.
Đây là "giải pháp thay thế" rất đơn giản, vì bạn có UNIQUE
cột:
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