MySQL में रो बनाते/अपडेट करते समय ऑटोमेटिक टाइमस्टैम्प स्टोर करने के 2 तरीके
तरीका 1: टेबल बनाते समय (CREATE TABLE में)
CREATE TABLE yourTableName (
yourDateTimeColumnName DATETIME DEFAULT CURRENT_TIMESTAMP
);
तरीका 2: मौजूदा टेबल में कॉलम जोड़कर (ALTER TABLE)
ALTER TABLE yourTableName ADD yourColumnName DATETIME DEFAULT CURRENT_TIMESTAMP;
व्यावहारिक उदाहरण
तरीका 1: CREATE TABLE के साथ
mysql> CREATE TABLE CurrentTimeStampDemo (
-> CreationDate DATETIME DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.61 sec)
इन्सर्ट करते समय मान न दें:
mysql> INSERT INTO CurrentTimeStampDemo VALUES(); Query OK, 1 row affected (0.12 sec)
mysql> SELECT * FROM CurrentTimeStampDemo;
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 15:53:03 | +---------------------+ 1 row in set (0.00 sec)
तरीका 2: ALTER TABLE के साथ
mysql> CREATE TABLE Current_TimestampDemo (Id INT);
Query OK, 0 rows affected (0.43 sec)
mysql> ALTER TABLE Current_TimestampDemo
-> ADD CreationDate DATETIME DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO Current_TimestampDemo(Id) VALUES(1); Query OK, 1 row affected (0.19 sec) mysql> SELECT CreationDate FROM Current_TimestampDemo;
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 16:25:12 | +---------------------+ 1 row in set (0.00 sec)
उन्नत: ऑटो-अपडेट टाइमस्टैम्प (ON UPDATE)
CREATE TABLE demo (
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
created_at: केवल इन्सर्ट पर सेट होता हैupdated_at: हर अपडेट पर ऑटोमेटिक अपडेट होता है
डेटा टाइप विकल्प:
| टाइप | रेंज | स्टोरेज | टाइमज़ोन |
|---|---|---|---|
| DATETIME | 1000-01-01 से 9999-12-31 | 8 बाइट्स | नहीं (सत्र टाइमज़ोन) |
| TIMESTAMP | 1970-01-01 से 2038-01-19 | 4 बाइट्स | हाँ (UTC में स्टोर) |
सुझाव: नए एप्लीकेशन के लिए DATETIME + DEFAULT CURRENT_TIMESTAMP बेहतर है (2038 समस्या नहीं, टाइमज़ोन नियंत्रण)।