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

MySQL-এ সাধারণ ফাংশন (FUNCTION) তৈরি করার পদ্ধতি

MySQL-এ কাস্টম ফাংশন তৈরি করতে `CREATE FUNCTION` স্টেটমেন্ট ব্যবহার করুন। ফাংশন অবশ্যই `DETERMINISTIC` বা `READS SQL DATA`/`MODIFIES SQL DATA` ক্যারاكتেরিস্টিক ঘোষণা করতে হয়। বাইনারি লগিং সক্রিয় থাকলে `log_bin_trust_function_creators = 1` সেট করতে হয়।

সিনট্যাক্স

DELIMITER //
DROP FUNCTION IF EXISTS yourFunctionName;
CREATE FUNCTION yourFunctionName(Param1 TYPE, ...) RETURNS return_type
BEGIN
    DECLARE var_name TYPE DEFAULT default_value;
    -- SQL statements
    RETURN var_name;
END //
DELIMITER ;

উদাহরণ: ID দিয়ে নাম খুঁজে বের করার ফাংশন

mysql> CREATE TABLE ViewDemo (Id INT, Name VARCHAR(200), Age INT);
mysql> INSERT INTO ViewDemo VALUES (1,'John',23), (2,'Sam',24);

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> DELIMITER //
mysql> CREATE FUNCTION searchRecord(yourId INT) RETURNS CHAR(100)
    -> BEGIN
    -> DECLARE Name1 CHAR(100) DEFAULT 'No Name Found For This Id';
    -> SELECT Name INTO Name1 FROM ViewDemo WHERE Id = yourId;
    -> RETURN Name1;
    -> END //
Query OK, 0 rows affected (0.33 sec)
mysql> DELIMITER ;

-- টেস্ট
mysql> SELECT searchRecord(2) AS Found;  -- Output: Sam
mysql> SELECT searchRecord(100) AS Found; -- Output: No Name Found For This Id

সীমাবদ্ধতা: ফাংশনে `SELECT ... INTO` ব্যবহার করা যায়, কিন্তু `SELECT *` রিটার্ন করা যায় না। টেবিল রিটার্ন করতেStored Procedure ব্যবহার করুন।

  1. MySQL কমান্ড লাইন থেকে ডেটাবেস তৈরি করা

  2. MySQL-ে ইনডেক্সসহ টেবিল তৈরি করা (CREATE INDEX)

  3. MySQL에서 VIEW(뷰) 생성하고 조회하기

  4. MySQL সিকোয়েন্স তৈরি (How to Create a MySQL Sequence)