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

MySQL-এ কাস্টম ফাংশন ব্যবহার করে ডেটা ভ্যালিডেট করা

MySQL-এ কাস্টম ফাংশন (Stored Function) তৈরি করে ডেটা ভ্যালিডেশন লজিক একাডেমিকভাবে ব্যবহার করা যায়। নিচে একটি ফাংশন দেওয়া হলো যা চেক করে দেওয়া স্ট্রিংটি বৈধ ডেটা কিনা।

ফাংশন তৈরি

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.03 sec)

mysql> DELIMITER //
mysql> CREATE FUNCTION isValidDate(actualDate VARCHAR(255)) RETURNS INT
    -> BEGIN
    ->   DECLARE flag INT;
    ->   IF (SELECT LENGTH(DATE(actualDate)) IS NOT NULL) THEN
    ->     SET flag = 1;
    ->   ELSE
    ->     SET flag = 0;
    ->   END IF;
    ->   RETURN flag;
    -> END //
Query OK, 0 rows affected (0.11 sec)
mysql> DELIMITER ;

টেস্ট কেস ১: NULL ভ্যালু

mysql> SELECT isValidDate(NULL);
+-------------------+
| isValidDate(NULL) |
+-------------------+
| 0                 |
+-------------------+

টেস্ট কেস ২: বৈধ ডেটা

mysql> SELECT isValidDate('2019-10-21');
+---------------------------+
| isValidDate('2019-10-21') |
+---------------------------+
| 1                         |
+---------------------------+

ব্যাখ্যা: DATE() ফাংশন ইনপুট স্ট্রিংকে ডেটায় কনভার্ট করতে চায়। সফল হলে দৈর্ঘ্য > ০ হবে, অথবা NULL রিটার্ন করবে। IS NOT NULL চেক করে ফ্ল্যাগ সেট করা হয়েছে।

সতর্কতা: এই ফাংশনটি স্ট্রিক্ট ভ্যালিডেশন করে না (যেমন '2019-13-01' ইনভ্যালিড কিন্তু MySQL ০ রিটার্ন করতে পারে)। প্রোডাকশনে STR_TO_DATE সহ স্ট্রিক্ট ফরম্যাট চেক করুন।

  1. MySQL-এ NOW() ফাংশন ব্যবহার করে বর্তমান তারিখের রেকর্ড আনা

  2. MySQL-এ UK ডেট ফরম্যাট (DD/MM/YYYY) কে স্ট্যান্ডার্ড ডেটে রূপান্তর

  3. MySQL-এ CASE স্টেটমেন্ট দিয়ে কাস্টম সর্টিং (দুই কলাম)

  4. MySQL에서 DATE() 함수로 날짜 부분만 비교해 레코드 업데이트하기