কম্পিউটার টিউটোরিয়াল

MySQL-এ BEFORE INSERT TRIGGER ব্যবহার করে অটোমেটিক্যালি বর্তমান তারিখ ইনসার্ট করুন

MySQL-এ টেবিলে ডেটা ইনসার্ট হওয়ার আগে অটোমেটিক্যালি বর্তমান তারিখ (CURDATE() বা NOW()) সেট করতে BEFORE INSERT TRIGGER ব্যবহার করা হয়।

উদাহরণ

১. টেবিল তৈরি করুন (DueDate DATETIME)

mysql> CREATE TABLE DemoTable1584 (DueDate DATETIME);

২. ট্রিগার তৈরি করুন

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

৩. ডেটা ইনসার্ট করুন (DueDate দিয়ে না)

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

৪. রেকর্ড দেখুন (সhibang CURDATE() দিয়ে সেট হয়েছে)

mysql> SELECT * FROM DemoTable1584;

আউটপুট (মান লইয়া: 2019-10-18):

+---------------------+
| DueDate             |
+---------------------+
| 2019-10-18 00:00:00 |
| 2019-10-18 00:00:00 |
| 2019-10-18 00:00:00 |
+---------------------+

মূল পয়েন্ট:

  • BEFORE INSERT - ইনসার্ট হওয়ার ঠিক আগে ট্রিগার ফায়ার হয়।
  • FOR EACH ROW - প্রতিটি রোর জন্য একবার।
  • NEW.DueDate - ইনসার্ট হওয়া রোর DueDate কলামকে রেফার করে।
  • CURDATE() - শুধু তারিখ (00:00:00), NOW() - তারিখ ও সময়।
  • ট্রিগার ড্রপ: DROP TRIGGER insertDate;

সতর্কতা: ট্রিগার ওভারহেড যোগ করে। বাল্ক ইনসার্টে পারফরম্যান্স প্রভাবিত হতে পারে। ডিফল্ট ভ্যালু DEFAULT CURRENT_TIMESTAMP (MySQL 5.6.5+ DATETIME/TIMESTAMP-এ) ব্যবহার করলে ট্রিগার লাগে না।

  1. Java ব্যবহার করে MySQL টেবিলে রেকর্ড সন্নিবেশ করা

  2. MySQL-ে ইনডেক্সসহ টেবিল তৈরি করা (CREATE INDEX)

  3. Java-MySQL 연동: 단일 컬럼만 INSERT하기

  4. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)