কম্পিউটার

কিভাবে আমরা মাইএসকিউএল ট্রিগারের সাথে সিগন্যাল স্টেটমেন্ট ব্যবহার করতে পারি?


আসলে, MySQL সিগন্যাল স্টেটমেন্ট হল অপ্রত্যাশিত ঘটনাগুলি পরিচালনা করার জন্য একটি ত্রুটি পরিচালনার পদ্ধতি এবং প্রয়োজনে অ্যাপ্লিকেশন থেকে একটি সুন্দর প্রস্থান। মূলত, এটি হ্যান্ডলারকে ত্রুটির তথ্য প্রদান করে। এর মৌলিক সিনট্যাক্স নিম্নরূপ হবে -

SIGNAL SQLSTATE | condition_value
[SET signal_information_item = value_1,[, signal_information_item] = value_2,
etc;]

এখানে, সিগন্যাল কীওয়ার্ড হল একটি SQLSTATE মান বা একটি শর্তের নাম যা একটি ডিক্লার শর্ত বিবৃতি দ্বারা ঘোষিত৷ SIGNAL বিবৃতিতে অবশ্যই সর্বদা একটি SQLSTATE মান বা একটি নামযুক্ত শর্ত উল্লেখ করতে হবে যা একটি SQLSTATE মান দিয়ে সংজ্ঞায়িত করা হয়েছে। একটি সিগন্যাল স্টেটমেন্টের SQLSTATE মান একটি পাঁচ-অক্ষরের আলফানিউমেরিক কোড নিয়ে গঠিত। আমরা অবশ্যই আমাদের নিজস্ব SQLSTATE কোড '00' দিয়ে শুরু করব না কারণ এই ধরনের মানগুলি সাফল্য নির্দেশ করে এবং একটি ত্রুটি সংকেত দেওয়ার জন্য বৈধ নয়৷ যদি আমাদের মান অবৈধ হয়, একটি খারাপ SQLSTATE ত্রুটি ঘটে। ক্যাচ-অল ত্রুটি পরিচালনার জন্য, আমাদের '45000' এর একটি SQLSTATE মান বরাদ্দ করা উচিত, যা একটি "আন-হ্যান্ডেলড ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম।"

MySQL ট্রিগারের সাথে SIGNAL স্টেটমেন্টের ব্যবহার ব্যাখ্যা করার জন্য আমরা নিম্নলিখিত উদাহরণটি ব্যবহার করছি যেখানে আমরা একটি ইনসারট করার আগে তৈরি করছি ছাত্র বয়স টেবিলে ট্রিগার. এটি সিগন্যাল স্টেটমেন্ট ব্যবহার করে একটি ত্রুটি বার্তা দেবে যদি আমরা 0-এর কম বয়সে প্রবেশ করার চেষ্টা করি৷

উদাহরণ

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
'45000' SET MESSAGE_TEXT = 'age less than 0'; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,'gaurav')//
ERROR 1644 (45000): age less than 0

উপরের ফলাফল সেট থেকে এটা স্পষ্ট যে আমরা যদি 0-এর কম বয়স সন্নিবেশ করার চেষ্টা করি তবে এটি SIGNAL বিবৃতি ব্যবহার করে একটি ত্রুটি ছুঁড়বে৷


  1. কিভাবে আমি MySQL এ একটি মুদ্রণ বিবৃতি অনুকরণ করতে পারি?

  2. আমি কি MySQL এ IF() এর সাথে SUM() ব্যবহার করতে পারি?

  3. কিভাবে সঠিকভাবে MySQL এ WITH ROLLUP ব্যবহার করবেন?

  4. মাইএসকিউএল-এ CURDATE এর সাথে CONTAINS() কীভাবে ব্যবহার করবেন?