আপনি যদি InnoDB ইঞ্জিন ব্যবহার করেন, তাহলে আপনি টেবিলের স্বয়ংক্রিয়_বৃদ্ধি মান কম মান সেট করতে পারবেন না। আপনাকে আপনার ইঞ্জিন InnoDB থেকে MyISAM এ পরিবর্তন করতে হবে।
দ্রষ্টব্য: ইঞ্জিন MyISAM আপনাকে কম মান সেট করতে দেয়। এখানে, আমরা একই ব্যবহার করছি।
অফিসিয়াল নথি অনুযায়ী:
আপনি কাউন্টারটিকে আগে থেকে ব্যবহার করা হয়েছে এমন কোনো মানের থেকে কম বা সমানে রিসেট করতে পারবেন না। MyISAM-এর জন্য, যদি মানটি বর্তমানে AUTO_INCREMENT কলামে থাকা সর্বোচ্চ মানের থেকে কম বা সমান হয়, তাহলে মানটি বর্তমান সর্বোচ্চ প্লাস ওয়ানে রিসেট করা হবে। InnoDB-এর জন্য, যদি কলামের বর্তমান সর্বোচ্চ মানের থেকে মান কম হয়, তাহলে কোনো ত্রুটি ঘটে না এবং বর্তমান ক্রম মান পরিবর্তন করা হয় না।
উপরে দেখানো হিসাবে, MyISAM-এ, ধরা যাক কিছু আইডি মুছে ফেলা হয়েছে। এর পরে, আপনি যদি আবার স্বয়ংক্রিয়_বৃদ্ধি যোগ করেন, তাহলে আইডিগুলি নিম্ন মান থেকে শুরু হবে অর্থাৎ চূড়ান্ত আইডি অবশিষ্ট থেকে শুরু হবে (আমরা কিছু আইডি মুছে ফেলার পরে)।
আসুন প্রথমে ইঞ্জিন MyISAM:
দিয়ে একটি টেবিল তৈরি করিmysql> টেবিল ডেমোটেবল তৈরি করুন (আইডি শূন্য অটো_ইনক্রিমেন্ট প্রাথমিক কী নয়) ইঞ্জিন='মাইআইএসএএম'; কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.23 সেকেন্ড)
সন্নিবেশ কমান্ড ব্যবহার করে সারণীতে রেকর্ড সন্নিবেশ করার জন্য নিম্নোক্ত ক্যোয়ারী:
mysql> DemoTable মানগুলিতে সন্নিবেশ করুন();Query OK, 1 সারি প্রভাবিত (0.04 sec)mysql> DemoTable মানগুলিতে ঢোকান কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.03 সেকেন্ড)mysql> DemoTable মানগুলিতে ঢোকান(); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.02 সেকেন্ড)mysql> DemoTable মানগুলিতে ঢোকান(); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.05 সেকেন্ড)mysql> DemoTable মানগুলিতে সন্নিবেশ করান; ঠিক আছে, 1 সারি প্রভাবিত (0.08 সেকেন্ড)
নিম্নোক্ত ক্যোয়ারীটি সিলেক্ট কমান্ড ব্যবহার করে টেবিল থেকে রেকর্ড প্রদর্শন করা হল:
mysql> DemoTable থেকে *নির্বাচন করুন;
এটি নিম্নলিখিত আউটপুট তৈরি করবে
<প্রে>+----+| আইডি |+----+| 1 || 2 || 3 || 4 || 5 || 6 |+----+6 সারি সেটে (0.00 সেকেন্ড)এখন, আইডি 4,5 এবং 6 মুছে দিন:
mysql> DemoTable থেকে মুছে দিন যেখানে Id=4 বা Id=5 বা Id=6; কোয়েরি ঠিক আছে, 3টি সারি প্রভাবিত (0.06 সেকেন্ড)
আসুন আমরা আবার সব রেকর্ড প্রদর্শন করি। নিম্নলিখিত প্রশ্ন:
mysql> DemoTable থেকে *নির্বাচন করুন;
এটি কিছু আইডি মুছে ফেলার পরে নিম্নলিখিত আউটপুট তৈরি করবে:
<প্রে>+----+| আইডি |+----+| 1 || 2 || 3 |+----+3 সারি সেটে (0.00 সেকেন্ড)এখন, আসুন আমরা নতুন স্বয়ংক্রিয়_বৃদ্ধি আইডি সেট করি।
MyISAM ইঞ্জিনে স্বয়ংক্রিয়_বৃদ্ধির মান কম করার জন্য নিম্নোক্ত ক্যোয়ারী রয়েছে। যাইহোক, বর্তমান স্বয়ংক্রিয়_বৃদ্ধির মান এখন 7 থেকে শুরু হওয়া উচিত কিন্তু যেহেতু আমরা MyISAM ইঞ্জিন ব্যবহার করছি, তাই মানটি বর্তমান সর্বোচ্চে রিসেট করা হয়েছে, যা 3 প্লাস ওয়ান অর্থাৎ 3+ 1 =4 হবে নতুন আইডি।
নিম্নলিখিত প্রশ্ন:
mysql> সারণি পরিবর্তন করুন DemoTable auto_increment=4;কোয়েরি ঠিক আছে, 3টি সারি প্রভাবিত (0.38 সেকেন্ড)রেকর্ড:3টি সদৃশ:0 সতর্কতা:0
এখন আবার কিছু রেকর্ড ঢোকান এবং তারপর অটো_ইনক্রিমেন্ট মান 4 থেকে শুরু হয় তা পরীক্ষা করতে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন:
mysql> DemoTable মানগুলিতে সন্নিবেশ করুন();Query OK, 1 সারি প্রভাবিত (0.03 sec)mysql> DemoTable মানগুলিতে ঢোকান ক্যোয়ারী ঠিক আছে, 1 সারি প্রভাবিত (0.02 সেকেন্ড)
সারণী থেকে সমস্ত রেকর্ড প্রদর্শন করার জন্য নিম্নোক্ত ক্যোয়ারী:
mysql> DemoTable থেকে *নির্বাচন করুন;
এটি নিম্নলিখিত আউটপুট তৈরি করবে। নতুন আইডি 4:
থেকে শুরু হয় <প্রে>+----+| আইডি |+----+| 1 || 2 || 3 || 4 || 5 || 6 |+----+6 সারি সেটে (0.00 সেকেন্ড)