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

MySQL में BEFORE INSERT ट्रिगर से दिनांक स्वचालित सेट करें

MySQL में BEFORE INSERT ट्रिगर का उपयोग करके पंक्ति डालने से पहले दिनांक/समय कॉलम को स्वचालित रूप से वर्तमान दिनांक पर सेट कर सकते हैं।

सिंटैक्स

CREATE TRIGGER ट्रिगर_नाम
BEFORE INSERT ON टेबल_नाम
FOR EACH ROW
SET NEW.कॉलम_नाम = फ़ंक्शन();

उदाहरण: DueDate को CURDATE() पर सेट करें

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1584 (DueDate DATETIME);

2. ट्रिगर बनाएं

mysql> CREATE TRIGGER insertDate
    -> BEFORE INSERT ON DemoTable1584
    -> FOR EACH ROW
    -> SET NEW.DueDate = CURDATE();

3. मान बिना डाले INSERT (ट्रिगर भरेगा)

mysql> INSERT INTO DemoTable1584 VALUES();
mysql> INSERT INTO DemoTable1584 VALUES();
mysql> INSERT INTO DemoTable1584 VALUES();

4. परिणाम

mysql> SELECT * FROM DemoTable1584;
+---------------------+
| DueDate             |
+---------------------+
| 2019-10-18 00:00:00 |
| 2019-10-18 00:00:00 |
| 2019-10-18 00:00:00 |
+---------------------+

ट्रिगर घटक

  • BEFORE INSERT - INSERT से पहले निष्पादित
  • FOR EACH ROW - प्रत्येक पंक्ति के लिए
  • NEW.कॉलम_नाम - नई पंक्ति का कॉलम (संशोधन योग्य)
  • OLD.कॉलम_नाम - पुरानी पंक्ति का कॉलम (UPDATE/DELETE में)

अन्य उपयोगी फ़ंक्शन

SET NEW.DueDate = NOW();           -- वर्तमान दिनांक-समय
SET NEW.DueDate = CURDATE();       -- केवल वर्तमान दिनांक
SET NEW.DueDate = CURRENT_TIMESTAMP; -- समान NOW()
SET NEW.CreatedAt = UTC_TIMESTAMP(); -- UTC समय

ट्रिगर देखें/हटाएं

SHOW TRIGGERS;
DROP TRIGGER IF EXISTS insertDate;

सावधानियां

  • ट्रिगर प्रदर्शन प्रभाव डालते हैं (प्रति पंक्ति निष्पादन)
  • जटिल लॉजिक से बचें
  • ट्रिगर के भीतर ट्रिगर निष्पादन सीमित (MySQL 8.0+ में बेहतर)
  • प्रतिकृति में ट्रिगर परिभाषा मास्टर/स्लेव दोनों पर होनी चाहिए

विकल्प: डिफ़ॉल्ट मान (MySQL 8.0.13+)

CREATE TABLE DemoTable1584 (
    DueDate DATETIME DEFAULT (CURDATE())
);

सरल मामलों के लिए ट्रिगर के बजाय डिफ़ॉल्ट मान पसंद करें।

  1. Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें

    JDBC Statement या PreparedStatement का उपयोग करके Java एप्लिकेशन से MySQL में रिकॉर्ड डालें। टेबल बनाना CREATE TABLE DemoTable( Id INT, Name VARCHAR(30), CountryName VARCHAR(30), Age INT ); Query OK, 0 rows affected (0.66 sec) Java कोड (Statement) 0) { System.out.

  1. Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें? Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें?

    Java-MySQL कनेक्शन कोड में एक कॉलम इन्सर्ट करने के लिए INSERT INTO स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) MySQL टेबल में केवल एक कॉलम इन्सर्ट करने का जावा कोड यहाँ है। उदाहरण

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into