MySQL-এ ইউজার-ডিফাইনড সেশন ভেরিয়েবল (@ চিহ্ন)
MySQL-এ @ চিহ্ন ব্যবহার করে ইউজার-ডিফাইনড সেশন ভেরিয়েবল ঘোষণা করা হয়। এই ভেরিয়েবলগুলো বর্তমান সেশনের জন্য লোকাল এবং সেশন সমাপ্তি পর্যন্ত সংরক্ষিত থাকে। স্টোরড প্রসিডিউরে এই ভেরিয়েবলগুলো মান সংরক্ষণ এবং পুনরুদ্ধারের জন্য খুবই উপকারী।
উদাহরণ
প্রথমে একটি টেবিল তৈরি করা যাক:
CREATE TABLE DemoTable (
StudentName VARCHAR(50)
);
ডেটা ইনসার্ট করা যাক:
INSERT INTO DemoTable VALUES ('John Smith');
INSERT INTO DemoTable VALUES ('John Doe');
INSERT INTO DemoTable VALUES ('Chris Brown');
স্টোরড প্রসিডিউর তৈরি
একটি প্রসিডিউর তৈরি করা যাক যা রেকর্ডের সংখ্যা গুন করে সেশন ভেরিয়েবলে সংরক্ষণ করবে:
DELIMITER //
CREATE PROCEDURE `Demo_Of_@Symbol`()
BEGIN
SELECT COUNT(*) INTO @numberOfRecords FROM DemoTable;
END //
DELIMITER ;
প্রসিডিউর কল করা এবং ভেরিয়েবল ব্যবহার
CALL `Demo_Of_@Symbol`();
SELECT @numberOfRecords;
আউটপুট:
+------------------+
| @numberOfRecords |
+------------------+
| 3 |
+------------------+
মূল বৈশিষ্ট্য
@variable_nameফরম্যাটে লিখা হয়।- সেশন-স্পেসিফিক: অন্য সেশন থেকে অ্যাক্সেস করা যায় না।
SET @var = value;দিয়েও মান সেট করা যায়।- স্টোরড প্রসিডিউর, ট্রিগার, এবং সাধারণ কোয়ারিতে ব্যবহারযোগ্য।
সতর্কতা: এই ভেরিয়েবলগুলো কেস-ইনসেনসিটিভ (MySQL-এ ডিফল্টভাবে) এবং নামকরণে অক্ষর, সংখ্যা, আন্ডারস্কোর, ডলার চিহ্ন ব্যবহার করা যায়।