কম্পিউটার টিউটোরিয়াল

MySQL স্টোরড প্রোসিডিউরে ভেরিয়েবল স্কোপ কী?


যদি BEGIN/END ব্লকের ভেতরে ভেরিয়েবল ডিক্লেয়ার করা হয়, তবে তার স্কোপ শুধু সেই ব্লকের মধ্যে সীমাবদ্ধ। একই নামে অন্য BEGIN/END ব্লকে ভেরিয়েবল ডিক্লেয়ার করা যাবে কিন্তু তার স্কোপ তার নিজের ব্লকে থাকবে। উদাহরণ:

উদাহরণ

mysql> Create Procedure Scope_variables()
    -> BEGIN
    -> DECLARE A Varchar(5) Default 'outer';
    -> BEGIN
    -> DECLARE A Varchar(5) Default 'inner';
    -> SELECT A;
    -> END;
    -> SELECT A;
    -> END;
    -> //
Query OK, 0 rows affected (0.08 sec)

উপরের প্রোসিডিউরতে একই নামে দুটি ভেরিয়েবল A রয়েছে। ইনার ভেরিয়েবল প্রাধান্য পায় যতক্ষণ তার স্কোপে থাকে। প্রথম END পাওয়ায় ইনার ভেরিয়েবল 'OUT OF SCOPE' হয়ে যায়। প্রোসিডিউরটি আহ্বান করলে:

mysql> CALL Scope_variables();
+-------+
| A     |
+-------+
| inner |
+-------+
1 row in set (0.00 sec)
+-------+
| A     |
+-------+
| outer |
+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

  1. MySQL-এ স্টোরড প্রসিডিউরে DECLARE কীওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লেয়ার করা

  2. MySQL স্টোরড প্রোসিডিউরে শর্ত সেট করা (IF...ELSE)

  3. MySQL-এ স্টোরড প্রসিডিউরে ডাইনামিক SQL কোয়ারি ইমপ্লিমেন্ট করা

  4. C++-এ ডাইনামিক ইনিশিয়ালাইজেশন (Dynamic Initialization of Variables) কী