যখন আমি INSERT
একটি টেবিলের একক সারি করি যার AUTO_INCREMENT
কলাম রয়েছে আমি সেই সারিটির জন্য সঞ্চিত LAST_INSERT_ID()
নতুন AUTO_INCREMENT
'এড মানটি ফিরিয়ে দিতে ফাংশনটি ব্যবহার করতে চাই ।
অনেকগুলি মাইক্রোসফ্ট এসকিউএল সার্ভার ডেভস এবং অ্যাডমিনরা সন্দেহ নেই যে এসকিউএল সার্ভারের সমতুল কার্যকারিতাটি সচেতন ( SCOPE_IDENTITY
এবং @@IDENTITY
) এর সমস্যাগুলি ছাড়াই হয়নি ।
আমি মাইএসকিউএল ডক্সের অবস্থা জানি:
উত্পন্ন আইডি সার্ভারে প্রতি সংযোগের ভিত্তিতে রক্ষণ করা হয় । এর অর্থ এই যে একটি প্রদত্ত ক্লায়েন্ট ফাংশন দ্বারা ফিরে মান প্রথম
AUTO_INCREMENT
সাম্প্রতিকতম একটি প্রভাবিত বিবৃতি জন্য উত্পন্ন মানAUTO_INCREMENT
কলাম যে ক্লায়েন্ট দ্বারা । এই মানটি অন্য ক্লায়েন্টদের দ্বারা প্রভাবিত হতে পারে না, এমনকি যদি তারাAUTO_INCREMENT
নিজস্ব মান তৈরি করে। এই আচরণটি নিশ্চিত করে যে প্রতিটি ক্লায়েন্ট অন্যান্য ক্লায়েন্টের ক্রিয়াকলাপের জন্য উদ্বেগ ছাড়াই এবং তালা বা লেনদেনের প্রয়োজন ছাড়াই নিজের আইডি পুনরুদ্ধার করতে পারে।
এমনকি এমনকি যতদূর বলতে যান:
একাধিক ক্লায়েন্টের একসাথে ব্যবহার
LAST_INSERT_ID()
এবংAUTO_INCREMENT
কলামগুলি পুরোপুরি বৈধ।
এমন কোনও ঝুঁকি বা পরিস্থিতি রয়েছে যা LAST_INSERT_ID()
সঠিক মান না ফেরানোর কারণ হতে পারে ?
আমি সেন্টস 5.5 এক্স 64 এবং ফেডোরা 16 x64 এবং ইনোডিবি ইঞ্জিনে মাইএসকিউএল 5.5 ব্যবহার করছি।
last_insert_id()
জিজ্ঞাসাটি সফল হয়েছিল কিনা তা বিচার করার জন্য আপনার অস্তিত্ব ব্যবহার করা উচিত হয়নি । এটি সর্বশেষে প্রবেশ করা আইডি, আপনার প্রয়োজনীয় মানগুলি ধারণ করে যখন আপনি ইতিমধ্যে জানতেন যে আপনি সফল হয়েছেন।