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

MySQL-এ AUTO_INCREMENT=100 ও ZEROFILL সেট করে ইনসার্ট করার ফলাফল

MySQL-এ AUTO_INCREMENT শুরু মান এবং ZEROFILL এট্রিবিউট সেট করে কলাম তৈরি করলে, ইনসার্টের সময় মান না দিলে স্বয়ংক্রিয় সংখ্যা জেনারেট হয় এবং বাম পাশে শূন্য দিয়ে প্যাড করা হয়।

টেবিল তৈরি (AUTO_INCREMENT=100, ZEROFILL)

mysql> CREATE TABLE DemoTable (
    StudentId INT(7) ZEROFILL NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (StudentId)
) AUTO_INCREMENT = 100;
Query OK, 0 rows affected (0.48 sec)

মান না দিয়ে ইনসার্ট (৪ বার)

mysql> INSERT INTO DemoTable VALUES ();
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES ();
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES ();
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable VALUES ();
Query OK, 1 row affected (0.09 sec)

রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

ফলাফল (১০০ থেকে শুরু, ৭ ডিজিটে ZEROFILL):

+-----------+
| StudentId |
+-----------+
| 0000100   |
| 0000101   |
| 0000102   |
| 0000103   |
+-----------+
4 rows in set (0.00 sec)

ব্যাখ্যা

  • INT(7) ZEROFILL - ৭ ডিজিটের চেয়ে ছোট হলে বামে ০ দিয়ে পূরণ (UNSIGNED বাধ্যতামূলক)۔
  • AUTO_INCREMENT = 100 - পরবর্তী অটো-ইনক্রিমেন্ট মান ১০০।
  • প্রথম ইনসার্ট ১০০ পায়, তারপর ১০১, ১০২, ১০৩।
  • প্রদর্শনে ৭ ডিজিট: 0000100, 0000101, ...

সতর্কতা ও ডিপ্রিকেশন

  • ZEROFILL MySQL 8.0.17-এ ডিপ্রিকেটেড (ভবিষ্যতে মুছে যাবে)। অ্যাপ্লিকেশন লেভেলে ফরম্যাট করুন।
  • INT(N)-এ N শুধু ডিসপ্লে ವIDTH, স্টোরেজ রেঞ্জ নয়।
  • বড় সংখ্যার জন্য BIGINT ব্যবহার করুন।
  1. MySQL-এ NULL বা খালি মানের জন্য কাস্টম মান সেট করা

  2. MySQL-এ INSERT স্টেটমেন্ট ব্যবহার করার সময় অটো-ইনক্রিমেন্ট কলামে মান ইনসার্ট করতে হয় কি?

  3. MySQL-এ CASE WHEN ব্যবহার করে খালি ভ্যালুর জন্য কাস্টম নাম দেখান

  4. MySQL-এ UNIQUE কনস্ট্রেইন্ট থাকলে ডুপ্লিকেট ইনসার্টের বर्तব: এরর এবং কোনো রো ইনসার্ট হয় না