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 সহ স্ট্রিক্ট ফরম্যাট চেক করুন।