Giao dịch bạn không thực sự đó là lý do tại sao tôi đã xóa nó, phần còn lại được kiểm soát bởi giới hạn và bù mà bạn cần thực hiện các bản cập nhật một phần như vậy
CREATE TABLE test_arc [id int,check_time datetime, updated datetime]
CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
INSERT INTO test_data VALUES [1,NOW[] - INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY],[2,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY] ,[3,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY],[4,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY] ,[5,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY], [6,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY],[7,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY] ,[8,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY] ,[9,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY],[10,NOW[]- INTERVAL 1 DAY,NOW[]- INTERVAL 1 DAY]
SELECT * FROM test_data
id | check_time | updated -: | :------------------ | :------------------ 1 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 2 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 3 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 4 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 5 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 6 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 7 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 8 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 9 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12 10 | 2022-02-12 18:27:12 | 2022-02-12 18:27:12
CREATE PROCEDURE `insert_data` [] BEGIN DECLARE i BIGINT DEFAULT 0; DECLARE limitSize INT DEFAULT 5; DECLARE maxnumber BIGINT; SET maxnumber = [SELECT COUNT[*] FROM test_data] + 1; WHILE i ='2022-02-05' ORDER BY updated ASC LIMIT i, limitSize ON DUPLICATE KEY UPDATE id =VALUES[id], check_time=VALUES[check_time],updated = Values[updated ]; SET i = i + limitSize; END WHILE; END
✓
CALL insert_data[];
SELECT * FROM test_arc
id | check_time | updated -: | :------------------ | :------------------ 1 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 2 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 3 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 4 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 5 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 6 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 7 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 8 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 9 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12 10 | 2022-02-12 18:27:12 | 2022-02-13 18:27:12
DBFiddle ở đây
Các bảng Innodb, không giống như Myisam*, không thể "chỉ được sao chép", như một phần của từ điển dữ liệu của nó [và có khả năng các cấu trúc khác mà bảng tùy thuộc vào, như bộ đệm hợp nhất] được đặt trong bộ nhớ [nếu máy chủ đang chạy] và trong Không gian bảng chung/chính, a.k.a. Tệp lớn có tên là
CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
1.Nếu bạn đang sử dụng Percona Server> = 5.1 hoặc MySQL> = 5.6, có hỗ trợ cho các không gian bảng có thể vận chuyển, cho phép bạn xuất và nhập bảng trực tiếp từ hệ thống tập tin. Đây là phương pháp cho MySQL và Percona. Trong cả hai trường hợp, bạn đã yêu cầu bạn đã tạo bảng với tùy chọn
2 và liên quan đến việc sử dụng CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
3 và/hoặc Percona Xtrabakup [nếu bạn muốn xuất khẩu trực tuyến]. Xin lưu ý rằng Percona Server hoặc Xtrabakup không có sẵn cho Windows. Here it is the method for MySQL and for Percona. In both cases, it is required that you had created the table with the CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
2 option and involves the usage of CREATE TABLE test_data [id int,check_time datetime, updated Datetime]
3 and/or Percona Xtrabakup [if you want the export
to be done online]. Please note that Percona Server or Xtrabakup are not available for Windows.Phương thức này sẽ, nói chung, nhanh như sao chép tệp bằng các lệnh FileSystem [CP, RSYNC]. using the filesystem commands [cp, rsync].
Mặc dù có thể có một số trường hợp điều này có thể hoạt động trong MySQL