आप बस CURRENT_TIMESTAMP
को उसके डिफ़ॉल्ट खंड सेट कर सकते हैं (जैसा कि @Mark और @dcp अन्य उत्तर में बताया गया है):
CREATE TABLE your_table (
...
`created_timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
टेस्ट मामला:
CREATE TABLE tb (`a` int, `c` TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.04 sec)
INSERT INTO tb (a) VALUES (1);
Query OK, 1 row affected (0.01 sec)
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 1 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
UPDATE tb SET a = 5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 5 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
संपादित करें:
मेरे मूल उत्तर में मैंने DATETIME
कॉलम का उपयोग DEFAULT
क्लॉज CURRENT_TIMESTAMP
पर सेट करने का सुझाव दिया है। हालांकि इस तभी संभव है जब, TIMESTAMP
डेटा प्रकार का उपयोग कर के रूप में stated in documentation:
एक डेटा प्रकार विनिर्देश में DEFAULT
मूल्य खंड एक स्तंभ के लिए कोई डिफ़ॉल्ट मान इंगित करता है। एक अपवाद के साथ, डिफ़ॉल्ट मान स्थिर होना चाहिए; यह एक समारोह या अभिव्यक्ति नहीं हो सकता है। इसका मतलब है, उदाहरण के लिए, कि आप किसी दिनांक कॉलम के लिए NOW()
या CURRENT_DATE
जैसे फ़ंक्शन का मान मानने के लिए डिफ़ॉल्ट सेट नहीं कर सकते हैं। अपवाद यह है कि आप को TIMESTAMP
कॉलम के लिए डिफ़ॉल्ट के रूप में निर्दिष्ट कर सकते हैं।
स्रोत
2010-06-09 20:23:11
ज़रूरी नहीं है, आप इसे नहीं ऑटो के लिए सेट कर सकते हैं -अद्यतन करें। – dcp
डिफ़ॉल्ट रूप से, टाइमस्टैम्प अपडेट नहीं होता है। – ajacian81