AUTO_INCREMENT প্রাইমারি কীকে নির্দিষ্ট প্রস্থে (যেমন ৩ অঙ্ক) লিডিং জিরো সহ দেখাতে ZEROFILL এবং ALTER TABLE ... CHANGE ব্যবহার করা হয়।
টেবিল তৈরি
mysql> CREATE TABLE DemoTable1958 (
UserId INT,
UserName VARCHAR(20)
);
ALERT TABLE দিয়ে ZEROFILL + AUTO_INCREMENT যোগ করা
mysql> ALTER TABLE DemoTable1958
CHANGE UserId UserId INT(3) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY;
প্যারামিটার ব্যাখ্যা:
INT(3)— প্রদর্শন প্রস্থ ৩ অঙ্ক।UNSIGNED— নন-নেগেটিভ (ZEROFILL এর জন্য বাধ্যতামূলক)।ZEROFILL— বামে ০ প্যাড করে ৩ অঙ্ক দেখাবে (001, 002...)।NOT NULL AUTO_INCREMENT PRIMARY KEY— স্ট্যান্ডার্ড PK ডিক্লারেশন।
টেবিল কাঠামো যাচাই
mysql> DESC DemoTable1958;
+----------+--------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------------------+------+-----+---------+----------------+ | UserId | int(3) unsigned zerofill | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | +----------+--------------------------+------+-----+---------+----------------+
ডেটা ইনসার্ট
mysql> INSERT INTO DemoTable1958 (UserName) VALUES ('Chris'), ('David');
ফলাফল
mysql> SELECT * FROM DemoTable1958;
+--------+----------+ | UserId | UserName | +--------+----------+ | 001 | Chris | | 002 | David | +--------+----------+
গুরুত্বপূর্ণ সীমাবদ্ধতা
INT(3)হলো **প্রদর্শন প্রস্থ** — সংরক্ষণ হয় নরমাল ইন্টিজার। ৯৯৯ এর পর ১০০০ হবে (৪ অঙ্ক), ZEROFILL ৪ অঙ্ক দেখাবে (1000)।- স্টোরেজে কোনো পরিবর্তন হয় না — শুধু ক্লায়েন্ট-সাইড ফরম্যাটিং।
- অ্যাপ্লিকেশন লেয়ারে ফরম্যাটিং (LPAD, printf) করা অধিকतर ক্ষেত্রে ভালো অনুশীলন।
বিকল্প: ভিউ বা SELECT-এ ফরম্যাট
SELECT LPAD(UserId, 3, '0') AS UserId_Formatted, UserName FROM DemoTable1958;