MySQL-এ টেবিল তৈরি করার সময় DEFAULT কীওয়ার্ড ব্যবহার করে কলামের ডিফল্ট ভ্যালু সেট করা যায়। এটি INSERT সময় মান না দিলে অটোমেটিক্যালি অ্যাপ্লাই হয়।
টেবিল তৈরি (বিভিন্ন ডিফল্ট সহ)
mysql> CREATE TABLE demo33 (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(20) NOT NULL,
-> start_date DATE DEFAULT (CURRENT_DATE),
-> end_date DATE DEFAULT NULL,
-> category ENUM('Good','Medium','Low') DEFAULT 'Low'
-> );
Query OK, 0 rows affected (2.32 sec)
ডেটা ইনসার্ট (ডিফল্ট ব্যবহার করে)
mysql> INSERT INTO demo33 (name) VALUES ('John');
mysql> INSERT INTO demo33 (name, end_date, category) VALUES ('David', '2020-12-21', 'Medium');
mysql> INSERT INTO demo33 (name, start_date, category) VALUES ('David', '2020-04-01', 'Good');
mysql> INSERT INTO demo33 (name, start_date, end_date, category) VALUES ('David', '2020-03-10', '2020-08-22', 'Good');
ফলাফল
mysql> SELECT * FROM demo33; +----+-------+------------+------------+----------+ | id | name | start_date | end_date | category | +----+-------+------------+------------+----------+ | 1 | John | 2020-10-28 | NULL | Low | | 2 | David | 2020-10-28 | 2020-12-21 | Medium | | 3 | David | 2020-04-01 | NULL | Good | | 4 | David | 2020-03-10 | 2020-08-22 | Good | +----+-------+------------+------------+----------+
ব্যাখ্যা:
start_date DEFAULT (CURRENT_DATE)→ ইনসার্ট সময় বর্তমান তারিখend_date DEFAULT NULL→ এক্সপ্লিসিট NULLcategory ENUM(...) DEFAULT 'Low'→ এনামের প্রথম মান ডিফল্ট
নোট: MySQL 8.0.13+ এ DEFAULT (CURRENT_DATE) এক্সপ্রেশন সাপোর্ট করে। পুরানো ভার্সনে শুধু কনস্ট্যান্ট বা ফাংশন (CURRENT_TIMESTAMP) চলত।