Có thể di chuyển các hàng được 3 ngày tuổi vào một bảng khác được gọi là "Table_Archive" tự động trong các tệp mysql một tuần không?Di chuyển các hàng từ TableA sang Bảng lưu trữ
tableA ví dụ:
ID | stringvalue | Timestamp
1 | abc | 2011-10-01
2 | abc2 | 2011-10-02
3 | abc3 | 2011-10-05
4 | abc4 | 2011-10-10
5 | abc5 | 2011-10-11
Sau khi di chuyển
tableA:
ID | stringvalue | Timestamp
4 | abc4 | 2011-10-10
5 | abc5 | 2011-10-11
Table_Archive:
ID | stringvalue | Timestamp
1 | abc | 2011-10-01
2 | abc2 | 2011-10-02
3 | abc3 | 2011-10-05
Và khi đầu vào mới đi vào tableA nó sẽ không được bất kỳ vấn đề với ID (PK) trong di chuyển tiếp theo?
gì Ive có:
CREATE PROCEDURE clean_tables()
BEGIN
BEGIN TRANSACTION;
DECLARE _now DATETIME;
SET _now := NOW();
INSERT
INTO Table_Archive
SELECT *
FROM TableA
WHERE timestamp < _now - 3;
FOR UPDATE;
DELETE
FROM TableA
WHERE timestamp < _now - 3;
COMMIT;
END
Làm thế nào để thay đổi _now là ngày 3 ngày trước?
Đã xảy ra sự cố với 'INSERT' và' DELETE' đơn giản, đang chạy dưới một công việc định kỳ? –
Tôi không biết nếu ID của bạn sẽ can thiệp trong tương lai. Nếu tôi xóa từ TableA và sau đó thực hiện rất nhiều chèn, sẽ không được sử dụng ID một lần nữa. Và động thái tiếp theo sẽ cố gắng chèn một hàng với cùng một ID của – Linqan
Sử dụng một [Trình tự] (http://www.tutorialspoint.com/mysql/mysql-using-sequences.htm) cho các ID và nó đảm bảo rằng các ID sẽ không được lặp lại. – Manoj