মাইএসকিউএল কীভাবে সীমাবদ্ধতার সাথে কাজ করে তা আমাদের বুঝতে দিন −
MySQL আমাদের লেনদেন সংক্রান্ত টেবিলের সাথে কাজ করতে সাহায্য করে (যা রোলব্যাকের অনুমতি দেয়) এবং অ-লেনদেনযোগ্য টেবিলের সাথে (যা রোলব্যাকের অনুমতি দেয় না)। এই কারণেই অন্যান্য ডিবিএমএসের তুলনায় মাইএসকিউএল-এ সীমাবদ্ধতাগুলি পরিচালনা করা আলাদা। অ-লেনদেনযোগ্য ডাটাবেসে, অনেক সারি সন্নিবেশ বা আপডেট করার সময় যদি একটি ত্রুটি ঘটে, তবে এটি রোল ব্যাক করা যাবে না। এই মামলাটি সঠিকভাবে পরিচালনা করতে হবে।
MySQL সার্ভার প্রশ্নগুলির জন্য একটি ত্রুটি তৈরি করে যা এটি একটি বিবৃতি পার্স করার সময় ত্রুটি হিসাবে শনাক্ত করে যা কার্যকর করা দরকার৷ একবার ত্রুটি সনাক্ত করা হলে, এটি বিবৃতি কার্যকর করার সময় ত্রুটিগুলি থেকে পুনরুদ্ধার করার চেষ্টা করে। এটি এখন পর্যন্ত সমস্ত বিবৃতির জন্য করা হয়নি৷
৷MySQL হয় বিবৃতিটিকে মাঝখানে থামাতে পারে বা এটি থেকে পুনরুদ্ধার করতে পারে এবং যখন একটি ত্রুটি ঘটে তখন চালিয়ে যেতে পারে। ডিফল্টরূপে, সার্ভার এটি থেকে পুনরুদ্ধার করে এবং চলতে থাকে।
বিদেশী কীগুলি সারণী জুড়ে ডেটা ক্রস-রেফারেন্স করার অনুমতি দেয় এবং বিদেশী কী সীমাবদ্ধতাগুলি নিশ্চিত করতে সাহায্য করে যে এই স্প্রেড-আউট ডেটা সামঞ্জস্যপূর্ণ থাকে৷
বিদেশী কী রেফারেন্স
MySQL REATE TABLE এবং ALTER TABLE স্টেটমেন্টে ON UPDATE এবং ON DELETE বিদেশী কী রেফারেন্স সমর্থন করে৷
রেফারেন্সিয়াল অ্যাকশন
উপলভ্য রেফারেন্সিয়াল অ্যাকশনগুলি হল- সীমাবদ্ধ, ক্যাসকেড, সেট নাল, এবং কোনও অ্যাকশন নেই৷
NO ACTION হল ডিফল্ট রেফারেন্সিয়াল অ্যাকশন৷
ENUM
একটি ENUM মান অবশ্যই একটি হতে হবে যা কলামের সংজ্ঞাতে তালিকাভুক্ত, বা অভ্যন্তরীণ সাংখ্যিক সমতুল্য। মানটি একটি ত্রুটির মান (0 বা খালি স্ট্রিং) হতে পারে না৷ ENUM('a','b','c') হিসাবে সংজ্ঞায়িত একটি কলামের জন্য 'a', 'b', বা ' ছাড়া অন্য মানগুলি c', যেমন '', 'd', বা 'ax' অবৈধ বলে বিবেচিত হয় এবং প্রত্যাখ্যাত হয়।