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

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

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 → এক্সপ্লিসিট NULL
  • category ENUM(...) DEFAULT 'Low' → এনামের প্রথম মান ডিফল্ট

নোট: MySQL 8.0.13+ এ DEFAULT (CURRENT_DATE) এক্সপ্রেশন সাপোর্ট করে। পুরানো ভার্সনে শুধু কনস্ট্যান্ট বা ফাংশন (CURRENT_TIMESTAMP) চলত।

  1. MySQL-এ MyISAM ইঞ্জিন সহ টেবিল তৈরি করা

  2. MySQL-এ InnoDB ইঞ্জিন সহ টেবিল তৈরি করা

  3. MySQL-এ বুলিয়ান কলাম তৈরি করা false ডিফল্ট মান দিয়ে

  4. MySQL Workbench-এ নতুন ডেটাবেস তৈরি করা