উদাহরণ সহ MySQL AUTO_INCREMENT

অটো ইনক্রিমেন্ট কি?

অটো ইনক্রিমেন্ট একটি ফাংশন যা সংখ্যাসূচক ডেটা প্রকারের উপর কাজ করে। এটি স্বয়ংক্রিয়ভাবে ক্রমবর্ধমান সংখ্যাসূচক মান তৈরি করে যখন অটো ইনক্রিমেন্ট হিসাবে সংজ্ঞায়িত ক্ষেত্রের জন্য একটি টেবিলের মধ্যে একটি রেকর্ড োকানো হয়।

কখন অটো ইনক্রিমেন্ট ব্যবহার করবেন?

ডাটাবেস নরমালাইজেশনের পাঠে, আমরা দেখেছি কিভাবে প্রাথমিক এবং বিদেশী কী ব্যবহার করে একে অপরের সাথে সম্পর্কিত অনেকগুলি ছোট টেবিলে ডেটা সংরক্ষণ করে ন্যূনতম অপ্রয়োজনীয়তার সাথে ডেটা সংরক্ষণ করা যায়।

একটি প্রাথমিক কী অবশ্যই অনন্য হওয়া উচিত কারণ এটি একটি ডাটাবেসে একটি সারি অনন্যভাবে চিহ্নিত করে। কিন্তু, কিভাবে আমরা নিশ্চিত করতে পারি যে প্রাথমিক কী সবসময় অনন্য? সম্ভাব্য সমাধানগুলির মধ্যে একটি হবে, প্রাথমিক কী উৎপন্ন করার জন্য একটি সূত্র ব্যবহার করা, যা ডাটা যোগ করার আগে টেবিলে কীটির অস্তিত্ব পরীক্ষা করে। এটি ভাল কাজ করতে পারে কিন্তু আপনি দেখতে পাচ্ছেন যে পদ্ধতিটি জটিল এবং নির্বোধ নয়। এই ধরনের জটিলতা এড়াতে এবং প্রাথমিক কী সর্বদা অনন্য তা নিশ্চিত করার জন্য, আমরা প্রাথমিক কীগুলি তৈরি করতে মাইএসকিউএল এর অটো ইনক্রিমেন্ট বৈশিষ্ট্যটি ব্যবহার করতে পারি। আইএনটি ডেটা টাইপের সাথে অটো ইনক্রিমেন্ট ব্যবহার করা হয়। INT ডেটা টাইপ স্বাক্ষরিত এবং স্বাক্ষরবিহীন উভয় মানই সমর্থন করে। স্বাক্ষরবিহীন ডেটা প্রকারে শুধুমাত্র ইতিবাচক সংখ্যা থাকতে পারে। একটি সর্বোত্তম অনুশীলন হিসাবে, স্বয়ংক্রিয় বৃদ্ধি প্রাথমিক কীতে স্বাক্ষরবিহীন সীমাবদ্ধতা সংজ্ঞায়িত করার সুপারিশ করা হয়।

অটো ইনক্রিমেন্ট সিনট্যাক্স

চলুন এখন মুভি ক্যাটাগরি টেবিল তৈরিতে ব্যবহৃত স্ক্রিপ্টটি দেখি। | _+_ |

লক্ষ্য করুন category_id ক্ষেত্রের 'AUTO_INCREMENT'। এটি প্রতিবার একটি নতুন সারি টেবিলে ertedোকানোর সময় ক্যাটাগরি আইডি স্বয়ংক্রিয়ভাবে তৈরি হয়। টেবিলে ডেটা whenোকানোর সময় এটি সরবরাহ করা হয় না, মাইএসকিউএল এটি তৈরি করে।

ডিফল্টরূপে, AUTO_INCREMENT এর প্রারম্ভিক মান হল 1, এবং এটি প্রতিটি নতুন রেকর্ডের জন্য 1 দ্বারা বৃদ্ধি পাবে

আসুন বিভাগ সারণির বর্তমান বিষয়বস্তু পরীক্ষা করি। | _+_ |

মাইএসকিউএল ওয়ার্কবেঞ্চে myflixdb এর বিরুদ্ধে উপরের স্ক্রিপ্টটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়।

category_idবিভাগ নামমন্তব্য
কমেডিহাস্যরস সহ সিনেমা
2রোমান্টিকপ্রেমের গল্প
3মহাকাব্যগল্প নির্ভর সিনেমা
4হররখালি
5কল্পবিজ্ঞানখালি
6থ্রিলারখালি
7কর্মখালি
8প্রেম সংক্রান্ত হাস্যরসখালি

আসুন এখন ক্যাটাগরি টেবিলে একটি নতুন বিভাগ সন্নিবেশ করাই। | _+_ |

মাইএসকিউএল ওয়ার্কবেঞ্চে myflixdb এর বিরুদ্ধে উপরের স্ক্রিপ্টটি চালানো আমাদের নীচের দেখানো ফলাফল দেয়।

category_idবিভাগ নামমন্তব্য
কমেডিহাস্যরস সহ সিনেমা
2রোমান্টিকপ্রেমের গল্প
3মহাকাব্যগল্প নির্ভর সিনেমা
4হররখালি
5কল্পবিজ্ঞানখালি
6থ্রিলারখালি
7কর্মখালি
8প্রেম সংক্রান্ত হাস্যরসখালি
9কার্টুনখালি

মনে রাখবেন আমরা ক্যাটাগরি আইডি সরবরাহ করিনি। মাইএসকিউএল আমাদের জন্য এটি স্বয়ংক্রিয়ভাবে তৈরি করেছে কারণ বিভাগ আইডি স্বয়ংক্রিয়ভাবে বৃদ্ধি হিসাবে সংজ্ঞায়িত করা হয়েছে।

যদি আপনি মাইএসকিউএল দ্বারা তৈরি করা শেষ সন্নিবেশ আইডি পেতে চান তবে আপনি এটি করতে LAST_INSERT_ID ফাংশনটি ব্যবহার করতে পারেন। নীচে দেখানো স্ক্রিপ্টটি তৈরি করা শেষ আইডি পায়। | _+_ |

উপরের স্ক্রিপ্টটি চালানো INSERT ক্যোয়ারী দ্বারা উত্পন্ন শেষ স্বয়ংক্রিয় বৃদ্ধি নম্বর দেয়। ফলাফল নিচে দেখানো হয়েছে।

সারসংক্ষেপ

  • অটো ইনক্রিমেন্ট অ্যাট্রিবিউট যখন একটি কলামে সংখ্যাসূচক ডেটা টাইপ সহ নির্দিষ্ট করা হয়, যখনই ডাটাবেসে নতুন সারি যোগ করা হয় তখন ক্রমানুসারে সংখ্যা তৈরি করে।
  • অটো ইনক্রিমেন্ট সাধারণত প্রাথমিক কী তৈরি করতে ব্যবহৃত হয়।
  • অটো ইনক্রিমেন্টে সংজ্ঞায়িত ডেটা টাইপ অনেক রেকর্ডের জন্য যথেষ্ট বড় হওয়া উচিত। TINYINT কে অটো ইনক্রিমেন্ট ফিল্ডের জন্য ডেটা টাইপ হিসাবে সংজ্ঞায়িত করার ফলে টেবিলে 255 এ রেকর্ড করা রেকর্ডের সংখ্যা সীমাবদ্ধ থাকে কারণ এর বাইরে কোনো মান TINYINT ডেটা টাইপ দ্বারা গৃহীত হবে না।
  • নেতিবাচক সংখ্যা এড়ানোর জন্য স্বয়ংক্রিয় বৃদ্ধি প্রাথমিক কীগুলিতে স্বাক্ষরহীন সীমাবদ্ধতা নির্দিষ্ট করা একটি ভাল অভ্যাস হিসাবে বিবেচিত হয়।
  • যখন একটি টেবিল থেকে একটি সারি মুছে ফেলা হয়, তার স্বয়ংক্রিয় বৃদ্ধি আইডি পুনরায় ব্যবহার করা হয় না। মাইএসকিউএল ধারাবাহিকভাবে নতুন সংখ্যা তৈরি করতে থাকে।
  • ডিফল্টরূপে, AUTO_INCREMENT এর প্রারম্ভিক মান হল 1, এবং এটি প্রতিটি নতুন রেকর্ডের জন্য 1 দ্বারা বৃদ্ধি পাবে
  • AUTO_INCREMENT ক্রমটি অন্য মান দিয়ে শুরু করতে, AUTO_INCREMENT = 10 ব্যবহার করুন