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

MySQL স্টোরড প্রোসিডিউর কীভাবে অ্যাল্টার করবেন?


ALTER ROUTINE প্রিভিলেজ থাকলে ALTER PROCEDURE স্টেটমেন্ট দিয়ে MySQL স্টোরড প্রোসিডিউর অ্যাল্টার করা যায়। 'delete_studentinfo' নামক প্রোসিডিউর উদাহরণ হিসেবে নেওয়া হলো:

mysql> SHOW CREATE PROCEDURE Delete_studentinfo\G
*************************** 1. row ***************************
    Procedure: Delete_studentinfo
    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 Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `Delete_studentinfo`( IN p_id INT) BEGIN DELETE FROM student_info WHERE ID=p_id; END
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.01 sec)

উপরের ফলাফলে দেখা যাচ্ছে 'delete_studentinfo'-এ কোনো কমেন্ট নেই। এখন ALTER PROCEDURE দিয়ে কমেন্ট যোগ করা যাক:

mysql> ALTER PROCEDURE Delete_studentinfo
    -> COMMENT 'deleting the record'//
Query OK, 0 rows affected (0.03 sec)

এখন SHOW CREATE PROCEDURE চালালে কমেন্ট যোগ হয়েছে তা নিশ্চিত হবে:

mysql> SHOW CREATE PROCEDURE Delete_studentinfo\G
*************************** 1. row ***************************
    Procedure: Delete_studentinfo
    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 Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `Delete_studentinfo`( IN p_id INT) COMMENT 'deleting the record' BEGIN DELETE FROM student_info WHERE ID=p_id; END
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

  1. এক MySQL স্টোরড প্রোসিডিউর অন্য স্টোরড প্রোসিডিউর কল করতে পারে কিনা?

  2. MySQL স্টোরড প্রোসিডিউয়ার তৈরি করে ফ্যাক্টোরিয়াল ক্যালকুলেট করা

  3. MySQL স্টোরড ফাংশন আল্টার (পরিবর্তন) করা

  4. MySQL-এ স্টোরড প্রসিডিউর দিয়ে টেবিল তৈরি করা