Tôi chèn một số dữ liệu vào một bảng, nhưng đôi khi nó xung đột với các dữ liệu khác trong bảng (ví dụ: nó có cùng khóa chính).
Tôi muốn có thể chỉ ghi đè lên dữ liệu này nếu nó ở đó, thay vì có mysql gửi cho tôi một thông báo lỗi nói rằng họ là một khóa chính trùng lặp. Tôi biết rằng tôi chỉ có thể xóa các giá trị này trước khi bàn tay, nhưng nó sẽ có một truy vấn khá lớn.
Có thể ghi đè lên bằng cách nào đó và ngăn chặn bất kỳ cảnh báo nào hoặc tôi buộc phải xóa các giá trị này.Chèn vào bảng mysql và ghi đè bất kỳ dữ liệu hiện tại
Trả lời
chỉ là một chút cheatsheet
Mysql có 3 kịch bản khác nhau trong việc xử lý các bản sao khóa chính:
nếu bạn muốn ...
- không làm gì cả - sử dụng INSERT IGNORE
- xóa hiện có và tạo mới - sử dụng REPLACE INTO
- cập nhật hiện tại - sử dụng ON DUPLICATE UPDATE
Bạn có thể sử dụng thay thế câu hỏi thay vì chèn. Nhìn vào http://dev.mysql.com/doc/refman/5.1/en/replace.html
Bạn có thể sử dụng REPLACE INTO trong MySQL để thực hiện việc này.
REPLACE INTO table
SET name = 'Treffynnon'
Tra cứu "về cập nhật khóa trùng lặp".
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
MySQL có một "INSERT ... ON DUPLICATE KEY UPDATE" lệnh. Bạn có thể tìm thấy nó ở đây: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
INSERT INTO `table` VALUES ('a', 'b') ON DUPLICATE KEY UPDATE `field1`='a', `field2`='b'
'trường dữ liệu = VALUES (trường)' là một lựa chọn tốt hơn - giúp bạn tiết kiệm được việc phải sử dụng dữ liệu hai lần trong truy vấn. Hàm values () sẽ kéo nó từ phần chèn của câu lệnh cho bạn, vì vậy dữ liệu của bạn chỉ đi vào chuỗi truy vấn một lần. –
- 1. mysql :: chèn vào bảng, dữ liệu từ bảng khác?
- 2. Chèn bản ghi MySQL từ nhiều bảng vào bảng mới
- 3. "chọn * vào bảng" Nó có hoạt động để chèn dữ liệu vào bảng hiện có
- 4. Thêm cột dữ liệu vào bảng mySQL hiện có
- 5. MySql, chia chuỗi và chèn vào bảng
- 6. Làm thế nào để chèn dữ liệu mẫu vào bảng cơ sở dữ liệu MySQL
- 7. Chèn dữ liệu vào bảng tạm thời
- 8. Việc nhập tệp .sql vào MySQL có ghi đè lên db hiện tại hoặc nối thêm vào nó không?
- 9. Chèn vào cơ sở dữ liệu
- 10. Chèn dữ liệu nhị phân vào MySQL (không có PreparedStatement)
- 11. Ghi đè dữ liệu ghi đè C++ trong một tệp tại một vị trí cụ thể
- 12. Oracle: Chèn dữ liệu kiểu hàng vào một bảng khác
- 13. Chọn dữ liệu bảng MySql vào một mảng
- 14. Bảng xóa MySQL - Cơ sở dữ liệu hiện tại hoặc mọi cơ sở dữ liệu?
- 15. Chèn mã html vào bảng mysql
- 16. C ghi ở giữa tệp nhị phân mà không ghi đè bất kỳ nội dung hiện có nào
- 17. chèn vào MySQL TỪ khác bảng
- 18. Cách hiệu quả nhất để chèn hàng ngàn bản ghi vào một bảng (MySQL, Python, Django)
- 19. Tại sao một số kết nối mysql chọn dữ liệu cũ cơ sở dữ liệu mysql sau khi xóa + chèn?
- 20. hồ sơ Chèn vào một bảng MySQL sử dụng Java
- 21. PostgreSQL: chèn dữ liệu vào bảng từ json
- 22. Bản ghi được liên kết với bất kỳ bảng nào?
- 23. Cách nhanh hơn để đồng thời chèn dữ liệu vào MySQL
- 24. Nối dữ liệu vào bảng pytables hiện có
- 25. chèn dữ liệu từ bảng này sang bảng khác trong mysql
- 26. Thêm thuộc tính siêu dữ liệu vào bảng MySQL
- 27. Chèn bản ghi vào bảng con khi bản ghi cha đã tồn tại bằng mã khung Entity trước tiên
- 28. Kết nối MySQL/Python - chèn biến python vào bảng MySQL
- 29. Chèn số lượng lớn không chèn bất kỳ hàng nào
- 30. Chèn nội dung tệp vào cột của bảng MySQL
Tôi thích quảng cáo tự xấu hổ. –