MySQL में INFORMATION_SCHEMA.TABLES से सबसे हाल ही में बनी टेबल का नाम प्राप्त करें
MySQL में सबसे हाल ही में बनाई गई टेबल (सबसे हाल की CREATE_TIME) का नाम प्राप्त करने के लिए INFORMATION_SCHEMA.TABLES सिस्टम व्यू को क्वेरी करें। यह ऑडिटिंग, माइग्रेशन सत्यापन, और डायनामिक SQL के लिए उपयोगी है।
सिंटैक्स
SELECT TABLE_NAME, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name'
ORDER BY CREATE_TIME DESC
LIMIT 1;
व्यावहारिक उदाहरण
नई टेबल बनाएं (यह सबसे हाल की होगी):
mysql> CREATE TABLE DemoTable1323 (FirstName VARCHAR(10));
mysql> INSERT INTO DemoTable1323 VALUES('Chris');
mysql> INSERT INTO DemoTable1323 VALUES('David');
mysql> INSERT INTO DemoTable1323 VALUES('Bob');
डेटा देखें:
mysql> SELECT * FROM DemoTable1323;
+-----------+
| FirstName |
+-----------+
| Chris |
| David |
| Bob |
+-----------+
सबसे हाल की टेबल प्राप्त करने की क्वेरी
mysql> SELECT TABLE_NAME, CREATE_TIME AS `Time`
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'web'
-> ORDER BY CREATE_TIME DESC
-> LIMIT 1;
SELECT TABLE_NAME, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db'
AND TABLE_TYPE = 'BASE TABLE'
ORDER BY CREATE_TIME DESC
LIMIT 1;
शीर्ष 5 हाल की टेबलें
SELECT TABLE_NAME, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db'
AND TABLE_TYPE = 'BASE TABLE'
ORDER BY CREATE_TIME DESC
LIMIT 5;
विशिष्ट पैटर्न वाली टेबलें
SELECT TABLE_NAME, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db'
AND TABLE_NAME LIKE 'demo%'
ORDER BY CREATE_TIME DESC;
सीमाएं और विचार
CREATE_TIME कुछ स्टोरेज इंजन/संस्करणों में NULL हो सकता है
ALTER TABLECREATE_TIME को **नहीं** बदलता (केवल UPDATE_TIME बदलता है)
पार्टीशन की गई टेबलों के लिए पार्टीशन स्तर पर समय अलग हो सकता है
अधिकार: INFORMATION_SCHEMA पर SELECT अधिकार आवश्यक
संबंधित: अंतिम संशोधित टेबल (डेटा परिवर्तन)
SELECT TABLE_NAME, UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db'
AND TABLE_TYPE = 'BASE TABLE'
AND UPDATE_TIME IS NOT NULL
ORDER BY UPDATE_TIME DESC
LIMIT 1;
नोट: UPDATE_TIME InnoDB में हमेशा सटीक नहीं होता (बफर पूल फ्लश पर निर्भर)।
उपयोग के मामले
स्कीमा माइग्रेशन टूल्स: अंतिम लागू माइग्रेशन टेबल खोजें
बैकअप सत्यापन: हाल की टेबलें बैकअप में शामिल हैं?
डायनामिक SQL: नवीनतम लॉग/इवेंट टेबल लक्षित करें
ऑडिट: अनधिकृत टेबल निर्माण का पता लगाएं
INFORMATION_SCHEMA.TABLES MySQL मेटाडेटा क्वेरी का प्राथमिक स्रोत है।
MySQL डेटाबेस से डेटा प्राप्त करने के लिए, आपको Java से executeQuery() मेथड का उपयोग करना होगा। पहले MySQL डेटाबेस में एक टेबल बनाएं। यहां हम sample डेटाबेस में निम्नलिखित टेबल बनाएंगे:
); Query OK, 0 rows affected (0.80 sec)
अब INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं।
क्वेरी
MySQL में CASE और SUM() का उपयोग करके एक क्वेरी में कई मानों की गिनती
जब आपको एक ही कॉलम में अलग-अलग मानों (जैसे Male और Female) की गिनती एक साथ चाहिए, तो CASE स्टेटमेंट के साथ SUM() फंक्शन का उपयोग करें।
उदाहरण: कर्मचारियों के लिंग की गिनती
पहले एक डेमो टेबल बनाएं:
CREATE TABLE DemoTable (
Emp
MySQL में DATE_SUB() और BETWEEN का उपयोग करके किसी दिनांक कॉलम में अंतिम N दिनों के रिकॉर्ड क्वेरी कर सकते हैं।
उदाहरण: पिछले 3 दिन पहले के पोस्ट (आधार दिनांक: 2019-10-20)
1. टेबल बनाएं
CREATE TABLE DemoTable1582 (PostedDate DATETIME);
2. डेटा डालें
INSERT INTO DemoTable1582 VALUES(2019-10-25 0