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

MySQL-এ স্টোরড প্রোসিজার কল করে SELECT চালানো


MySQL-এ CALL দিয়ে প্রোসিজার চালানোর পর SELECT

MySQL-এ স্টোরড প্রোসিজারকে FROM ক্লজে ব্যবহার করা যায় না (SELECT * FROM procedure() অবৈধ)। সঠিক পদ্ধতি: প্রথমে CALL করুন, তারপর আলাদা SELECT কোয়ারি চালান।

উদাহরণ সহ ব্যাখ্যা

টেবিল তৈরি:

mysql> CREATE TABLE DemoTable2 (
    -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CustomerName VARCHAR(100),
    -> ShippingDateTime DATETIME
    -> );

স্টোরড প্রোসিজার তৈরি (ইনসার্ট করার জন্য):

mysql> DELIMITER //
mysql> CREATE PROCEDURE insert_information(Name VARCHAR(100), shippingtime DATETIME)
    -> BEGIN
    ->     INSERT INTO DemoTable2(CustomerName, ShippingDateTime) VALUES(Name, shippingtime);
    -> END //
mysql> DELIMITER ;

প্রোসিজার কল করি (NOW() দিয়ে বর্তমান সময়):

mysql> CALL insert_information('Chris', NOW());

তারপর ডেটা দেখি:

mysql> SELECT * FROM DemoTable2;
+------------+--------------+---------------------+
| CustomerId | CustomerName | ShippingDateTime    |
+------------+--------------+---------------------+
| 1          | Chris        | 2019-04-08 15:03:07 |
+------------+--------------+---------------------+

দ্রষ্টব্য: প্রোসিজার যদি SELECT রিটার্ন করে (যেমন SELECT * FROM tbl), তবে CALL-এর পর সেটি আউটপুট হিসেবে দেখাবে। কিন্তু FROM CALL proc() লিখা যায় না।

  1. MySQL স্টোরড প্রোসিজারের আউটপুট সাপ্রেস (দমন) করা

  2. MySQL-এ স্টোরড প্রসিজার এবং SELECT-এ IF ফাংশন ব্যবহার

  3. MySQL-এ COUNT() ফাংশন ব্যবহার করে SELECT করা

  4. MySQL প্রোসিডিউর দিয়ে 'select' স্টেটমেন্ট দুবার প্রদর্শন করা