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' লিগ্যাসি ডেটাবেস মাইগ্রেশনের জন্য দরকার হতে পারে, নতুন প্রজেক্টে এড়িয়ে চলুন।