MySQL-এ টেবিলের শেষ আপডেট টাইম জানতে INFORMATION_SCHEMA.TABLES-এর UPDATE_TIME কলাম ব্যবহার করুন। নোট: এটি শুধু MyISAM ইঞ্জিনের জন্য নির্ভরযোগ্য; InnoDB-এ সাধারণত NULL রিটার্ন করে।
সিনট্যাক্স
SELECT UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
উদাহরণ
কেস ১: MyISAM টেবিল
SELECT UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business'
AND TABLE_NAME = 'twoprimarykeytabledemo';
+---------------------+
| UPDATE_TIME |
+---------------------+
| 2018-11-21 16:51:50 |
+---------------------+
কেস ২: অন্য MyISAM টেবিল
SELECT UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business'
AND TABLE_NAME = 'currenttimezone';
+---------------------+
| UPDATE_TIME |
+---------------------+
| 2018-10-29 17:20:18 |
+---------------------+
কেস ৩: InnoDB টেবিল (NULL রিটার্ন)
SELECT UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business'
AND TABLE_NAME = 'zerofilldemo';
+-------------+
| UPDATE_TIME |
+-------------+
| NULL |
+-------------+
InnoDB-এ লাস্ট আপডেট টাইম পাওয়ার উপায়
পদ্ধতি ১: InnoDB সিস্টেম টেবিল (MySQL 5.7+ / 8.0)
SELECT NAME, LAST_UPDATE
FROM INNODB_TABLESTATS
WHERE NAME = 'database/table_name';
পদ্ধতি ২: ট্রিগার দিয়ে ট্র্যাকিং
CREATE TABLE table_audit (
table_name VARCHAR(64),
operation VARCHAR(10),
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TRIGGER trg_table_update
AFTER UPDATE ON your_table FOR EACH ROW
INSERT INTO table_audit (table_name, operation) VALUES ('your_table', 'UPDATE');
পদ্ধতি ৩: GENERATED COLUMNS + TIMESTAMP
ALTER TABLE your_table
ADD COLUMN last_modified TIMESTAMP
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
CREATE_TIME vs UPDATE_TIME
CREATE_TIME— টেবিল তৈরির সময় (InnoDB-এও কাজ করে)UPDATE_TIME— শেষ ডেটা মডিফিকেশন (MyISAM-এ কাজ করে)
সব টেবিলের আপডেট টাইম একসাথে
SELECT TABLE_NAME, UPDATE_TIME, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database'
ORDER BY UPDATE_TIME DESC;