2012-03-29 40 views
5

Tôi có một bảng yêu thích có chứa một số trường như login_id, driver_id (Một login_id có thể có nhiều driver_id). Sau đó, tôi đang sử dụng cập nhật hàng loạt, không có bất kỳ kiểm tra driver_id tồn tại trong bảng.Bỏ qua chèn vào mục trùng lặp trong mysql

Dữ liệu đầu vào sẽ được đặt id trình điều khiển, tôi cần bỏ qua việc chèn id trình điều khiển nếu cùng một id đã có cho login_id có liên quan. Vì vậy, các id mới sẽ được chèn vào và các id khác không được chèn vào và các id khác không phải là

Tôi có thể làm gì với mysql, tất cả các cài đặt cần thiết trong bảng.

Vui lòng thông báo cho tôi

Trả lời

11

Bạn có thể sử dụng "INSERT IGNORE INTO".

INSERT IGNORE INTO favorite(login_id,driver_id) VALUES (login_id,driver_id) (login_id,driver_id)..... 
1

tạo khóa duy nhất với login_id và driver_id trong mysql.

Khi bạn cố gắng chèn bản ghi hiện có dựa trên các khóa đó, một lỗi sẽ được ném. Sau đó bạn có thể bẫy lỗi này và tiến hành như bình thường.

CREATE UNIQUE INDEX unique 
    ON tbl_name (login_id, driver_id) 
Các vấn đề liên quan