क्या पंक्तियों को 3 दिनों पुराना है, जिसे "टेबल_आर्किव" नामक दूसरी तालिका में स्वचालित रूप से mysql में एक सप्ताह में जाना संभव है?टेबलए से टेबल-आर्काइव में पंक्तियों को ले जाएं
TableA पूर्व:
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
कदम
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
और जब नया इनपुट टेबल में आता है तो अगले कदम में आईडी (पीके) के साथ कोई समस्या नहीं होगी?
क्या Ive मिला:
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
मैं कैसे बदल सकता हूँ _now तारीख 3 दिन पहले हो के लिए?
क्रॉन नौकरी के तहत चल रहे एक साधारण 'INSERT' और 'DELETE' के साथ कुछ गड़बड़ है? –
मुझे नहीं पता कि आईडी भविष्य में हस्तक्षेप करेगी या नहीं। अगर मैं टेबल ए से हटा देता हूं और फिर आवेषण के बहुत सारे बनाता है, तो आईडी फिर से उपयोग नहीं की जाएगी। और अगला कदम आईडी के लिए एक ही आईडी के – Linqan
के साथ एक पंक्ति डालने का प्रयास करेगा [अनुक्रम] (http://www.tutorialspoint.com/mysql/mysql-using-sequences.htm) आईडी के लिए और यह सुनिश्चित करता है कि आईडी दोहराना नहीं है। – Manoj