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

MySQL-এ ইউজার-ডিফাইন্ড ভেরিয়েবল (@) ব্যবহার করে ইনসার্ট করা

Oracle-এ &variable সিনট্যাক্স কাজ করে, কিন্তু MySQL-এ সেশন ভেরিয়েবল (@variable_name) ব্যবহার করতে হয়।

সিনট্যাক্স

SET @var1 = value1, @var2 = value2, @var3 = value3, ...;
INSERT INTO table_name VALUES (@var1, @var2, @var3, ...);

উদাহরণ

CREATE TABLE student_info (
    student_id INT,
    student_name VARCHAR(100),
    student_age INT,
    student_marks INT,
    student_country VARCHAR(10)
);

SET @id = 10001, @name = 'Carol', @age = 23, @marks = 89, @country = 'US';
INSERT INTO student_info VALUES (@id, @name, @age, @marks, @country);

ফলাফল

+-----------+-------------+------------+--------------+------------------+
| student_id| student_name| student_age| student_marks| student_country  |
+-----------+-------------+------------+--------------+------------------+
| 10001     | Carol       | 23         | 89           | US               |
+-----------+-------------+------------+--------------+------------------+

ব্যবহারিক উদাহরণ: স্টোরড প্রসিডিউরে

DELIMITER //
CREATE PROCEDURE insert_student(
    IN p_name VARCHAR(100), 
    IN p_age INT, 
    IN p_marks INT
)
BEGIN
    DECLARE v_id INT;
    SET v_id = (SELECT COALESCE(MAX(student_id), 0) + 1 FROM student_info);
    INSERT INTO student_info VALUES (v_id, p_name, p_age, p_marks, 'BD');
END //
DELIMITER ;

CALL insert_student('Rahim', 20, 95);

প্রিপেয়ার্ড স্টেটমেন্ট (আধুনিক ও নিরাপদ পদ্ধতি)

PREPARE stmt FROM 'INSERT INTO student_info VALUES (?, ?, ?, ?, ?)';
SET @id = 10002, @name = 'Karim', @age = 22, @marks = 88, @country = 'BD';
EXECUTE stmt USING @id, @name, @age, @marks, @country;
DEALLOCATE PREPARE stmt;

দ্রষ্টব্য

  • @variable — সেশন-স্কোপড, কানেকশন বন্ধ হলে হারায়
  • @@variable — সিস্টেম ভেরিয়েবল
  • সিকিউরিটি: প্রিপেয়ার্ড স্টেটমেন্ট SQL ইনজেকশন রোধ করে
  1. MySQL-এ কলাম মান শাফল করা

  2. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  3. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?