Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP लागू करना

MySQL में किसी DATETIME/TIMESTAMP कॉलम को स्वचालित रूप से वर्तमान टाइमस्टैम्प पर सेट करने के लिए (निर्माण पर डिफ़ॉल्ट और अपडेट पर स्वचालित अपडेट), DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP क्लॉज का उपयोग करें।

सिंटैक्स

-- टेबल बनाते समय
CREATE TABLE table_name (
    col_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- मौजूदा टेबल पर ALTER TABLE के साथ
ALTER TABLE table_name 
MODIFY COLUMN col_name TIMESTAMP 
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

व्यावहारिक उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable737 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100),
    StudentAdmissionDate DATETIME
);
Query OK, 0 rows affected (0.68 sec)

2. कॉलम को TIMESTAMP में बदलें और ऑटो-टाइमस्टैम्प सक्षम करें

mysql> ALTER TABLE DemoTable737 
MODIFY COLUMN StudentAdmissionDate TIMESTAMP 
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Query OK, 0 rows affected (2.20 sec)
Records: 0  Duplicates: 0  Warnings: 0

3. संरचना जांचें

mysql> DESC DemoTable737;
+----------------------+--------------+------+-----+-------------------+-----------------------------+
| Field                | Type         | Null | Key | Default           | Extra                       |
+----------------------+--------------+------+-----+-------------------+-----------------------------+
| StudentId            | int(11)      | NO   | PRI | NULL              | auto_increment              |
| StudentName          | varchar(100) | YES  |     | NULL              |                             |
| StudentAdmissionDate | timestamp    | YES  |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------------+--------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.01 sec)

व्यवहार

परीक्षण

mysql> INSERT INTO DemoTable737 (StudentName) VALUES ('Test Student');
Query OK, 1 row affected (0.10 sec)

mysql> SELECT * FROM DemoTable737;
+-----------+---------------+---------------------+
| StudentId | StudentName   | StudentAdmissionDate|
+-----------+---------------+---------------------+
| 1         | Test Student  | 2024-01-15 10:30:45 |  -- स्वचालित सेट
+-----------+---------------+---------------------+

mysql> UPDATE DemoTable737 SET StudentName = 'Updated Name' WHERE StudentId = 1;
Query OK, 1 row affected (0.10 sec)

mysql> SELECT * FROM DemoTable737;
+-----------+---------------+---------------------+
| StudentId | StudentName   | StudentAdmissionDate|
+-----------+---------------+---------------------+
| 1         | Updated Name  | 2024-01-15 10:35:22 |  -- स्वचालित अपडेट
+-----------+---------------+---------------------+

महत्वपूर्ण नोट्स

  • केवल एक TIMESTAMP कॉलम प्रति टेबल डिफ़ॉल्ट CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP दोनों हो सकता है (MySQL 5.6.5 से पहले)
  • MySQL 5.6.5+ में एकाधिक TIMESTAMP कॉलम्स पर यह व्यवहार संभव है
  • DATETIME भी MySQL 5.6.5+ में समर्थित है
  • NULL अनुमति होने पर DEFAULT NULL अलग व्यवहार करता है

केवल निर्माण पर टाइमस्टैम्प (अपडेट पर नहीं)

DEFAULT CURRENT_TIMESTAMP  -- ON UPDATE के बिना

केवल अपडेट पर टाइमस्टैम्प (निर्माण पर नहीं)

DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP

अक्षम करना

ALTER TABLE DemoTable737 
MODIFY COLUMN StudentAdmissionDate TIMESTAMP 
DEFAULT CURRENT_TIMESTAMP;  -- ON UPDATE हटाता है
  1. - MySQL में CONCAT और ALTER TABLE ADD COLUMN से दो फील्ड जोड़कर तीसरा अपडेट करें

    MySQL में ALTER TABLE ... ADD COLUMN से नया कॉलम जोड़ें, फिर UPDATE ... SET ... CONCAT() से दो मौजूदा कॉलम जोड़कर नए कॉलम को भरें। चरण ALTER TABLE - नया कॉलम जोड़ें UPDATE - CONCAT() से मान भरें उदाहरण: FirstName + LastName = FullName 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTa

  1. - MySQL में UPDATE स्टेटमेंट में AND ऑपरेटर का उपयोग कैसे करें?

    MySQL में UPDATE स्टेटमेंट के WHERE क्लॉज में AND ऑपरेटर का उपयोग करके एकाधिक शर्तों के आधार पर पंक्तियों को अपडेट किया जा सकता है। सिंटैक्स UPDATE table_name SET column = value WHERE condition1 AND condition2; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable ( -> Student

  1. - MySQL में कस्टम वेरिएबल के साथ वैध क्वेरी लिखकर अपडेट कैसे करें

    उदाहरण टेबल बनाएं: INSERT INTO DemoTable2027 VALUES (10), (20), (31), (11); कस्टम वेरिएबल के साथ अपडेट UPDATE DemoTable2027 SET UserId = (@uId := @uId + 10); परिणाम +--------+ | UserId | +--------+ | 110 | | 120 | | 130 | | 140 | +--------+ व्याख्या: @uId वेरिएबल 100 से शुरू होता है

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
ऑपरेशनStudentAdmissionDate व्यवहार
INSERT (मान प्रदान नहीं किया)स्वचालित रूप से CURRENT_TIMESTAMP सेट होता है
INSERT (मान प्रदान किया)प्रदान किया गया मान उपयोग होता है
UPDATE (कॉलम निर्दिष्ट नहीं)स्वचालित रूप से CURRENT_TIMESTAMP पर अपडेट होता है
UPDATE (कॉलम निर्दिष्ट)प्रदान किया गया मान उपयोग होता है