Kết xuất bảng mysql khi nhập thay thế các bản ghi hiện có


9

Tôi đã sử dụng một bãi chứa bằng mysqldump ..

mysqldump -u... -p... mydb t1 > mydb_table.sql

Sau đó, tôi đã nhập kết xuất trong cơ sở dữ liệu khác có cùng bảng, nhưng các bản ghi khác nhau ..

mysql -u...-p... mydb < mydb_tables.sql

Db nhập khẩu có các bản ghi từ chính_key 1 đến 1000 và db xuất khẩu có 5000 đến 10.000 ..

Nhưng khi nhập các bản ghi hiện có, tức là 1 đến 1000 đã bị xóa ..

Làm sao?? Tại sao?? Nếu đó là hành vi mặc định, tôi có thể đưa ra các tùy chọn nào để kết xuất để không để xảy ra lần sau ..

Câu trả lời:


12

Theo mặc định, mysqldump sẽ bỏ bảng. Bạn nên chỉ định --no-create-infotùy chọn như thế này:

mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql

Bằng cách đó, bạn chỉ có chèn để đối phó. Sử dụng --skip-extended-insertsẽ chèn một hàng tại một thời điểm. Điều này giúp giải quyết các vấn đề trùng lặp, nhưng bạn sẽ nhập như thế này:

mysql -u...-p... --force mydb < mydb_tables.sql

Các --forcetùy chọn là dành cho mục đích duy nhất của BIG tiếp tục trong trường hợp một khóa trùng lặp là gặp phải. Trong trường hợp đó, lỗi của INSERT vi phạm được bỏ qua và chuyển sang INSERT tiếp theo.


Có thể lấy lại dữ liệu đã bị xóa trong kết xuất không?
Arun Kumaresh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.