Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में ऑटो-इन्क्रीमेंट यूज़र ID को 001 से शुरू कैसे करें?

MySQL में ऑटो-इन्क्रीमेंट कॉलम को अग्रणी शून्य के साथ प्रदर्शित करने (जैसे 001, 002, 003) के लिए, ZEROFILL एट्रिब्यूट के साथ ALTER TABLE ... CHANGE का उपयोग करें। यह आंतरिक रूप से संख्यात्मक रहता है लेकिन डिस्प्ले में पैडेड होता है।

उदाहरण: मौजूदा टेबल को ZEROFILL में बदलना

सामान्य टेबल बनाएं:

mysql> CREATE TABLE DemoTable1958 (
    UserId INT,
    UserName VARCHAR(20)
);

CHANGE के साथ कॉलम परिभाषा बदलें:

mysql> ALTER TABLE DemoTable1958
CHANGE UserId UserId INT(3) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY;

टेबल विवरण चेक करें:

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');

आउटपुट (001, 002 फॉर्मेट):

+--------+----------+
| UserId | UserName |
+--------+----------+
| 001    | Chris    |
| 002    | David    |
+--------+----------+

मुख्य बिंदु

  • INT(3): डिस्प्ले चौड़ाई 3 (ZEROFILL के लिए आवश्यक)
  • UNSIGNED: ZEROFILL अंतर्निहित रूप से UNSIGNED बनाता है (ऋणात्मक नहीं)
  • ZEROFILL: बाएं पैड करता है शून्य से
  • NOT NULL AUTO_INCREMENT PRIMARY KEY: मानक PK परिभाषा
  • CHANGE: कॉलम नाम दो बार (पुराना नया) आवश्यक है

चौड़ाई और क्षमता

महत्वपूर्ण सीमाएं

  • केवल डिस्प्ले: स्टोरेज में मान 1, 2, 3 रहता है; केवल क्लाइंट डिस्प्ले प्रभावित
  • एप्लिकेशन: एप्लिकेशन को संख्यात्मक मान (1, 2) मिलेगा, '001' नहीं
  • माइग्रेशन: कुछ टूल्स ZEROFILL मेटाडेटा नहीं रखते
  • JOIN: अन्य टेबल के INT कॉलम के साथ JOIN काम करता है (संख्यात्मक तुलना)

वैकल्पिक: एप्लिकेशन लेयर फॉर्मेटिंग

-- SQL में (चयन के समय)
SELECT LPAD(UserId, 3, '0') AS formatted_id FROM DemoTable1958;

-- Java/Python में
String.format("%03d", userId)  // "001"
f"{user_id:03d}"               // "001"

सिफारिश: आंतरिक प्रोसेसिंग के लिए संख्यात्मक ID रखें, UI/रिपोर्ट लेयर पर फॉर्मेटिंग लागू करें। ZEROFILL लीगेसी/सरल रिपोर्टिंग के लिए उपयुक्त है।

  1. - MySQL में टेबल से बराबर या निकटतम बड़ी संख्या चुनें

    MySQL में किसी दिए गए मान के बराबर या उससे निकटतम बड़ी संख्या को टेबल से चुनने के लिए, ABS() फंक्शन और ORDER BY के साथ LIMIT का उपयोग करें। पहले एक टेबल बनाते हैं: mysql> create table DemoTable ( -> Value INT -> ); Query OK, 0 rows affected (1.33 sec) रिकॉर्ड इन्सर्ट करें: my

  1. - MySQL टेबल से डेटा डिलीट करने के बाद ऑटो इन्क्रीमेंट को 1 से कैसे शुरू करें?

    इसके लिए आप TRUNCATE TABLE कमांड का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1796 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
परिभाषाअधिकतम मानडिस्प्ले उदाहरण
INT(3) ZEROFILL999001, 099, 999
INT(5) ZEROFILL9999900001, 00123
INT(6) ZEROFILL999999000001