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

MySQL-এ ডিফল্ট ভ্যালু '0000-00-00' সহ DATETIME কলাম তৈরি করা

MySQL-এ DATETIME কলামে ডিফল্ট ভ্যালু '0000-00-00 00:00:00' সেট করতে DEFAULT কীওয়ার্ড ব্যবহার করা হয়।

টেবিল তৈরি

CREATE TABLE DemoTable (
    EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName VARCHAR(20),
    EmployeeJoiningDate DATETIME DEFAULT '0000-00-00 00:00:00'
) ENGINE=MyISAM, AUTO_INCREMENT=100;

ডেটা ইনসার্ট (ডেট না দিয়ে)

INSERT INTO DemoTable(EmployeeName) VALUES('Chris');
INSERT INTO DemoTable(EmployeeName) VALUES('David');
INSERT INTO DemoTable(EmployeeName) VALUES('Mike');
INSERT INTO DemoTable(EmployeeName) VALUES('Sam');

ফলাফল

+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeJoiningDate |
+------------+--------------+---------------------+
| 100        | Chris        | 0000-00-00 00:00:00 |
| 101        | David        | 0000-00-00 00:00:00 |
| 102        | Mike         | 0000-00-00 00:00:00 |
| 103        | Sam          | 0000-00-00 00:00:00 |
+------------+--------------+---------------------+

গুরুত্বপূর্ণ সতর্কতা

  • MySQL 5.7+ — স্ট্রিক্ট SQL মোড (NO_ZERO_DATE, NO_ZERO_IN_DATE) অন থাকলে '0000-00-00' অ্যালাউ নয়, এরর দেবে
  • InnoDB — ডিফল্ট ইঞ্জিন InnoDB-এ এই ডিফল্ট ভ্যালু সাপোর্ট নাও দিতে পারে
  • বিকল্প: NULL ডিফল্ট ব্যবহার করুন বা DEFAULT CURRENT_TIMESTAMP

সুপারিশ করা পদ্ধতি

EmployeeJoiningDate DATETIME DEFAULT NULL
-- অথবা
EmployeeJoiningDate DATETIME DEFAULT CURRENT_TIMESTAMP

'0000-00-00' লিগ্যাসি ডেটাবেস মাইগ্রেশনের জন্য দরকার হতে পারে, নতুন প্রজেক্টে এড়িয়ে চলুন।

  1. MySQL-এ DATETIME কলামে সময় যোগ করা (ADDTIME ফাংশন)

  2. MySQL-এ DEFAULT কনস্ট্রেইন্ট ব্যবহার করে নির্দিষ্ট অপশন সহ টেবিল তৈরি করা

  3. MySQL সিকোয়েন্স তৈরি (How to Create a MySQL Sequence)

  4. MySQL AUTO_INCREMENT উদাহরণসহ (MySQL AUTO_INCREMENT with Examples)