কেবল প্রশ্নটি শুনে আমি দুটি দিক নিয়ে ভাবতে পারি:
সহায়তা # 1: কার্যকারিতাটি বিশদভাবে বিবেচিত হবে
যদি এটি হয় তবে এর থেকে বোঝা যায় যে কোনও ফাংশনটিতে একই পরামিতিগুলির নির্দিষ্ট পরামিতিগুলির সেটগুলির জন্য উপাত্ত উপস্থাপন করা উচিত, যখন আপনি ফাংশনটি কল করেন তখন কোনও বিষয় নয়।
এখন, কোনও ফাংশনটি কল্পনা করুন যা ফাংশনে স্ট্যাটিক এসকিউএল এর উপর ভিত্তি করে দিনের বিভিন্ন সময়ে ডেটা সংগ্রহ করার কারণে একটি আলাদা উত্তর তৈরি করে। এক অর্থে, আপনি যদি প্যারামিটারের একই সেটটি প্রদান করে প্রতিবার একই টেবিলে এবং কলামগুলির একই সেটটি জিজ্ঞাসা করেন তবে এটি এখনও বিশদ হিসাবে বিবেচনা করা যেতে পারে।
আপনি যদি ডায়নামিক এসকিউএল এর মাধ্যমে কোনও ফাংশনের অন্তর্নিহিত টেবিলগুলি পরিবর্তন করতে পারেন? আপনি একটি DETERMINISTIC ফাংশনের সংজ্ঞা লঙ্ঘন করছেন।
লক্ষ্য করুন যে মাইএসকিউএল /etc/my.cnf এ এই বিকল্পটি যুক্ত করেছে
log-bin-trust-function-creators
যদিও এটি বলার জন্য একটি ওভারসিম্প্লিফিকেশন হতে পারে, এটি ডিটারমিনিস্টিক সম্পত্তি কঠোরভাবে প্রয়োগ না করে ফাংশনগুলিকে বাইনারি লগগুলিতে ডেটা লেখার অনুমতি দেয়।
সহায়তা # 2: ট্রিগারগুলি আবার ঘুরিয়ে দিতে সক্ষম হওয়া উচিত
- আপনি কি কোনও ফাংশন হিসাবে একই আচরণের সাথে ট্রিগারটি কল্পনা করতে পারেন এবং তারপরে মেশিনে ডায়নামিক এসকিউএল প্রবর্তন করতে পারেন?
- আপনি বেস্ব টেবিলটিতে এমভিসিসি প্রয়োগের পরে ট্রিগারটি বোঝানোর জন্য ডায়নামিক এসকিউএল এর বিরুদ্ধে এমভিসিসি (মাল্টিভিশন কনক্যুরিসি কন্ট্রোল) প্রয়োগের চেষ্টা করার কথা ভাবতে পারেন ?
আপনার কাছে মূলত এমন ডেটা থাকবে যা কেবলমাত্র এমভিসিসিতে চতুর্ভুজ বৃদ্ধি পায় (এমনকি তাত্পর্যপূর্ণ)। কম-বেশি বলতে গেলে ট্রিগারগুলির সাথে যে এস -কিউএল-র রোলব্যাক পরিচালনা করার প্রক্রিয়াটি অ-DETERMINISTIC হতে পারে তা ধর্মবিরোধী জটিল হবে।
এই দুটি দিকের আলোকে, আমি নিশ্চিত যে মাইএসকিউএল বিকাশকারীরা এই বিষয়গুলি সম্পর্কে ভেবেছিলেন এবং সীমাবদ্ধতার চাপিয়ে তাড়াতাড়ি সেগুলি বরখাস্ত করেছেন।
তাহলে, প্রক্রিয়াগুলির জন্য বাধা কেন? সোজা কথায়, DETERMINISTIC বৈশিষ্ট্য বা রোলব্যাক নিয়ে কোনও উদ্বেগ নেই।