MySQL AUTO_INCREMENT مثالوں کے ساتھ۔

آٹو انکریمنٹ کیا ہے؟

آٹو انکریمنٹ ایک فنکشن ہے جو اعداد و شمار کی اقسام پر چلتا ہے۔ یہ ہر بار خود بخود ترتیب وار عددی اقدار پیدا کرتا ہے جب کہ ریکارڈ کو کسی فیلڈ کے لیے ٹیبل میں داخل کیا جاتا ہے جسے آٹو انکریمنٹ کہا جاتا ہے۔

آٹو انکریمنٹ کب استعمال کریں؟

ڈیٹا بیس کو معمول پر لانے کے سبق میں ، ہم نے دیکھا کہ کس طرح ڈیٹا کو کم سے کم فالتو پن کے ساتھ ذخیرہ کیا جا سکتا ہے ، بنیادی اور غیر ملکی چابیاں استعمال کرتے ہوئے ایک دوسرے سے متعلقہ کئی چھوٹے جدولوں میں ڈیٹا ذخیرہ کر کے۔

ایک بنیادی کلید منفرد ہونی چاہیے کیونکہ یہ ڈیٹا بیس میں قطار کی منفرد شناخت کرتی ہے۔ لیکن ، ہم یہ کیسے یقینی بنا سکتے ہیں کہ بنیادی کلید ہمیشہ منفرد ہوتی ہے؟ ممکنہ حلوں میں سے ایک یہ ہوگا کہ بنیادی کلید پیدا کرنے کے لیے ایک فارمولہ استعمال کیا جائے ، جو ڈیٹا شامل کرنے سے پہلے ٹیبل میں کلید کے وجود کی جانچ کرتا ہے۔ یہ اچھی طرح سے کام کر سکتا ہے لیکن جیسا کہ آپ دیکھ سکتے ہیں کہ نقطہ نظر پیچیدہ ہے اور فول پروف نہیں ہے۔ اس طرح کی پیچیدگی سے بچنے اور اس بات کو یقینی بنانے کے لیے کہ بنیادی کلید ہمیشہ منفرد ہوتی ہے ، ہم بنیادی چابیاں پیدا کرنے کے لیے MySQL کی آٹو انکریمنٹ فیچر استعمال کر سکتے ہیں۔ INT ڈیٹا ٹائپ کے ساتھ آٹو انکریمنٹ استعمال کیا جاتا ہے۔ INT ڈیٹا ٹائپ دونوں دستخط شدہ اور دستخط شدہ اقدار کی حمایت کرتا ہے۔ دستخط شدہ ڈیٹا کی اقسام صرف مثبت نمبروں پر مشتمل ہوسکتی ہیں۔ ایک بہترین عمل کے طور پر ، یہ سفارش کی جاتی ہے کہ آٹو انکریمنٹ پرائمری کلید پر دستخط شدہ رکاوٹ کی وضاحت کریں۔

آٹو انکریمنٹ نحو۔

آئیے اب فلم کے زمرے کی میز بنانے کے لیے استعمال ہونے والے اسکرپٹ کو دیکھیں۔ | _+_ |

نوٹس کیٹگری_ڈ فیلڈ پر 'آٹو_ینکرمنٹ'۔ اس کی وجہ سے ہر بار ٹیبل میں ایک نئی صف داخل ہونے پر کیٹیگری آئی ڈی خود بخود بن جاتی ہے۔ ٹیبل میں ڈیٹا داخل کرتے وقت یہ فراہم نہیں کیا جاتا ہے ، ایس کیو ایل اسے تیار کرتا ہے۔

بطور ڈیفالٹ ، AUTO_INCREMENT کی ابتدائی قیمت 1 ہے ، اور یہ ہر نئے ریکارڈ کے لیے 1 سے بڑھ جائے گی

آئیے زمرہ جات کے جدول کے موجودہ مندرجات کا جائزہ لیتے ہیں۔ | _+_ |

مندرجہ بالا اسکرپٹ کو MySQL ورک بینچ میں myflixdb کے خلاف چلانے سے ہمیں درج ذیل نتائج ملتے ہیں۔

category_idقسم کا نامریمارکس
کامیڈیمزاح کے ساتھ فلمیں۔
رومانویرومانوی کہانیاں
مہاکاویکہانی پر مبنی فلمیں۔
ہاررخالی
سائنس فکشنخالی
سنسنی خیزخالی
عملخالی
رومانوی مزاحخالی

آئیے اب زمرے کے جدول میں ایک نیا زمرہ داخل کریں۔ | _+_ |

مائی ایس کیو ایل ورک بینچ میں myflixdb کے خلاف مذکورہ اسکرپٹ پر عملدرآمد ہمیں ذیل میں دکھائے گئے درج ذیل نتائج دیتا ہے۔

category_idقسم کا نامریمارکس
کامیڈیمزاح کے ساتھ فلمیں۔
رومانویرومانوی کہانیاں
مہاکاویکہانی پر مبنی فلمیں۔
ہاررخالی
سائنس فکشنخالی
سنسنی خیزخالی
عملخالی
رومانوی مزاحخالی
کارٹونخالی

نوٹ کریں کہ ہم نے زمرہ کی شناخت فراہم نہیں کی۔ مائی ایس کیو ایل نے خود بخود اسے ہمارے لیے تیار کیا کیونکہ کیٹیگری آئی ڈی کو آٹو انکریمنٹ سے تعبیر کیا گیا ہے۔

اگر آپ MySQL کے ذریعہ تیار کردہ آخری داخل ID حاصل کرنا چاہتے ہیں ، تو آپ LAST_INSERT_ID فنکشن استعمال کر سکتے ہیں۔ ذیل میں دکھایا گیا اسکرپٹ آخری آئی ڈی حاصل کرتا ہے جو تیار کیا گیا تھا۔ | _+_ |

مذکورہ اسکرپٹ پر عملدرآمد INSERT استفسار کے ذریعہ تیار کردہ آخری آٹو انکریمنٹ نمبر دیتا ہے۔ نتائج ذیل میں دکھائے گئے ہیں۔

خلاصہ

  • اعداد و شمار کی اقسام کے ساتھ کالم پر متعین کردہ آٹو انکریمنٹ وصف ، جب بھی ڈیٹا بیس میں نئی ​​قطار شامل کی جاتی ہے تو ترتیب سے نمبر پیدا کرتا ہے۔
  • آٹو انکریمنٹ عام طور پر بنیادی چابیاں بنانے کے لیے استعمال ہوتی ہے۔
  • آٹو انکریمنٹ پر متعین ڈیٹا ٹائپ کافی بڑا ہونا چاہیے تاکہ کئی ریکارڈز کو ایڈجسٹ کیا جا سکے۔ TINYINT کو آٹو انکریمنٹ فیلڈ کے لیے ڈیٹا ٹائپ کے طور پر متعین کرنا ریکارڈز کی تعداد کو محدود کرتا ہے جو کہ ٹیبل میں 255 تک ہی شامل کیے جا سکتے ہیں کیونکہ اس سے آگے کی کوئی بھی قدر TINYINT ڈیٹا ٹائپ قبول نہیں کرے گی۔
  • منفی نمبر رکھنے سے بچنے کے لیے آٹو انکریمنٹ پرائمری کیز پر دستخط شدہ رکاوٹ کی وضاحت کرنا ایک اچھا عمل سمجھا جاتا ہے۔
  • جب کسی ٹیبل سے قطار حذف ہو جاتی ہے تو اس کی آٹو انکریمنٹڈ آئی ڈی دوبارہ استعمال نہیں ہوتی۔ MySQL تسلسل کے ساتھ نئے نمبر بنانا جاری رکھے ہوئے ہے۔
  • بطور ڈیفالٹ ، AUTO_INCREMENT کی ابتدائی قیمت 1 ہے ، اور یہ ہر نئے ریکارڈ کے لیے 1 سے بڑھ جائے گی
  • AUTO_INCREMENT تسلسل کو دوسری قدر سے شروع کرنے کے لیے ، AUTO_INCREMENT = 10 استعمال کریں