2012-11-15 19 views
9

पर अंतिम परिवर्तन की दिनांक/समय प्राप्त करना मैं MySQL के साथ काम कर रहा हूं और मैं डेटाबेस के भीतर किसी भी तालिका में अंतिम परिवर्तन की तारीख/समय प्राप्त करना चाहता हूं। मेरी प्रत्येक तालिका में ऑटो अपडेटिंग '* _modified' टाइमस्टैम्प है, इसलिए मैं इसका उपयोग कर सकता हूं (* एक उपसर्ग है)।एक MySQL डेटाबेस

इसका उद्देश्य यह पता लगाना है कि डेटा पिछले डेटाबेस बैकअप के दिनांक/समय के बाद से बदल गया है या नहीं।

मैं सोच रहा था कि यह वर्णन करने या दिखाने के लिए ऐसा करने का एक आसान तरीका है? मैंने खोज और प्रयोग किया है, लेकिन अभी तक कुछ भी नहीं मिला है।

सहायता के लिए धन्यवाद।

उत्तर

10
SELECT update_time 
FROM information_schema.tables 
WHERE table_schema = 'dbName' 
     AND table_name = 'tableName' 
+0

हाय ज़क है यही कारण है, का उपयोग उत्तर के लिए धन्यवाद प्राप्त करने के लिए। सिर्फ एक सहायक सवाल, यदि मैं कर सकता हूं ... मेरे लिनक्स सिस्टम पर क्वेरी को निम्न केस उदाहरण के बजाय info_schema.TABLES पर अपडेट किया जाना था। यह सुरक्षित और स्थिर होगा क्योंकि यह हमेशा लिनक्स पर होस्ट किया जाएगा? धन्यवाद –

+0

यदि आप इसे एक्सेस करने के लिए PHP का उपयोग कर रहे हैं तो केस संवेदनशीलता कोई समस्या नहीं होनी चाहिए .. ईमानदार होने के लिए मुझे .sh स्क्रिप्ट आदि के बारे में निश्चित नहीं है .. – Zak

+0

यह केवल तालिकाओं की स्कीमा में ही बदलता है? तालिका के डेटा में परिवर्तन इस दृष्टिकोण से अनजान हैं। – petermeissner

2

मैं http://mysqladministrators.blogspot.it/2012/02/get-database-size.html

से इस metod पाया, मैं कर रहा हूँ के बाद से मैं बहुत MySql

में

डेटाबेस आकार जाओ तैयार नहीं अगर यह आपकी मदद कर सकता यकीन नहीं है, मुक्त अंतरिक्ष और अंतिम अद्यतन

तालिका डेटाबेस में INFORMATION_SCHEMA डेटाबेस से अपने क्वेरी ब्राउज़र या CLI में क्वेरी करके वर्तमान डेटाबेस आकार प्राप्त करने के लिए।

SELECT table_schema "Data Base Name", 
sum(data_length + index_length)/1024/1024 "Data Base Size in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema ; 

डेटाबेस मुक्त अंतरिक्ष

SELECT table_schema "Data Base Name", 
sum(data_length + index_length)/1024/1024 "Data Base Size in MB", 
sum(data_free)/ 1024/1024 "Free Space in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema; 

जाओ समय बनाने के द्वारा तो डेटाबेस अंतिम अद्यतन अद्यतन समय द्वारा आदेश दिया है।

SELECT MAX(UPDATE_TIME), MAX(CREATE_TIME), TABLE_SCHEMA 
FROM `TABLES` 
GROUP BY TABLE_SCHEMA 
ORDER BY 1, 2; 
0

स्वीकार किए जाते हैं जवाब महान है, लेकिन मुझे लगता है कि एक बेहतर प्रारूप मामले में यह एकदम शुरुआत करने के लिए तुरंत स्पष्ट नहीं है होगा:

SELECT table_name, update_time 
FROM information_schema.tables 
WHERE table_schema = 'myDBName' 
order by update_time DESC 

बाद से, हम हमेशा क्या तालिका पता नहीं है (रों) को छुआ गया है, और इसमें सबसे हाल ही में अपडेट की गई तालिकाओं को दिखाकर गतिविधि क्या थी, इस बारे में एक सुराग देने का बोनस है। मैं वास्तव में क्या देख रहा था -

0

बस एक डेटाबेस के तहत सभी तालिकाओं इस क्वेरी

SELECT TABLE_NAME,CREATE_TIME,UPDATE_TIME 
FROM information_schema.tables 
WHERE table_schema = 'database_name' 

सभी

संबंधित मुद्दे