কম্পিউটার

আমরা কিভাবে একটি MySQL সঞ্চিত ফাংশন পরিবর্তন করতে পারি?


আমাদের যদি ALTER রুটিন সুবিধা থাকে তাহলে আমরা ALTER FUNCTION কোয়েরির সাহায্যে MySQL সংরক্ষিত ফাংশন পরিবর্তন করতে পারি। এর সিনট্যাক্স নিম্নরূপ -

সিনট্যাক্স

ALTER FUNCTION function_name [characteristic ...]
characteristic:
   { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'

এখানে ফাংশন_নাম ফাংশনের নাম যা আমরা পরিবর্তন করতে চাই।

ALTER FUNCTION বিবৃতি একটি সংরক্ষিত ফাংশনের বৈশিষ্ট্যগুলিকে, সিনট্যাক্সে উপরে সংজ্ঞায়িত করতে পারে। আমরা একটি ALTER FUNCTION বিবৃতিতে একাধিক পরিবর্তন নির্দিষ্ট করতে পারি। কিন্তু আমরা এই স্টেটমেন্ট দিয়ে ফাংশনের প্যারামিটার বা বডি পরিবর্তন করতে পারি না। এটি ব্যাখ্যা করার জন্য আমরা নিম্নলিখিত উদাহরণে 'ফ্যাক্টরিয়াল' ফাংশন নামের মন্তব্য যোগ করছি -

উদাহরণ

mysql> ALTER FUNCTION factorial COMMENT 'Can accept fraction values';
Query OK, 0 rows affected (0.00 sec)

mysql> Show Create Function factorial\G
*************************** 1. row ***************************
       Function: factorial
       sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `factorial`(n DECIMAL(3,0)) RETURNS decimal(20,0)
DETERMINISTIC
COMMENT 'Can accept fraction values'
BEGIN
DECLARE factorial DECIMAL(20,0) DEFAULT 1;
DECLARE counter DECIMAL(3,0);
SET counter = n;
      factorial_loop: REPEAT
SET factorial = factorial * counter;

SET counter = counter - 1;
   UNTIL counter = 1
END REPEAT;
   RETURN factorial;
END

character_set_client: cp850
collation_connection: cp850_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

CREAT FUNCTION ক্যোয়ারী থেকে এটা স্পষ্ট যে ফাংশন 'ফ্যাক্টরিয়াল'-এর সংজ্ঞায় মন্তব্য যোগ করা হয়েছে।


  1. আমি কিভাবে একটি MySQL সঞ্চিত ফাংশন লিখতে পারি যা একটি প্রদত্ত সংখ্যার ফ্যাক্টরিয়াল গণনা করে?

  2. কিভাবে আমরা একটি ডাটাবেস ক্যোয়ারীতে একটি MySQL সঞ্চিত ফাংশন ব্যবহার করতে পারি?

  3. কিভাবে আমরা ডাটাবেস থেকে একটি MySQL সঞ্চিত ফাংশন মুছে ফেলতে পারি?

  4. আমরা কিভাবে MySQL সঞ্চিত জেনারেটেড কলাম যোগ করতে টেবিল পরিবর্তন করতে পারি?