महत्वपूर्ण संपादन: MySQL 5.6.5 . से अब DATETIME फ़ील्ड के साथ इसे प्राप्त करना संभव है , अन्य पोस्ट पर एक नज़र डालें नीचे...
पिछले संस्करण DATETIME के साथ ऐसा नहीं कर सकते...
लेकिन आप इसे TIMESTAMP के साथ कर सकते हैं:
mysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
+-------+-------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------------+-------+
| str | varchar(32) | YES | | NULL | |
| ts | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------+-------------+------+-----+-------------------+-------+
2 rows in set (0.00 sec)
mysql> insert into test (str) values ("demo");
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+---------------------+
| str | ts |
+------+---------------------+
| demo | 2008-10-03 22:59:52 |
+------+---------------------+
1 row in set (0.00 sec)
mysql>
चेतावनी: यदि आप डिफ़ॉल्ट के रूप में CURRENT_TIMESTAMP ON वाले कॉलम को परिभाषित करते हैं, तो आपको हमेशा इस कॉलम के लिए एक मान निर्दिष्ट करना होगा या मान अपडेट होने पर स्वचालित रूप से "अभी ()" पर रीसेट हो जाएगा। इसका अर्थ यह है कि यदि आप नहीं चाहते कि मान बदल जाए, तो आपके अद्यतन विवरण में "[आपका कॉलम नाम] =[आपका कॉलम नाम]" (या कोई अन्य मान) होना चाहिए या मान "अभी ()" हो जाएगा। अजीब है, लेकिन सच है। मैं 5.5.56-MariaDB का उपयोग कर रहा हूँ