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

ডেটাবেসের নাম প্যারামিটার হিসেবে নিয়ে টেবিল লিস্ট করার MySQL স্টোরড প্রোসিডিউর তৈরি করুন।


ধরা যাক 'query' ডেটাবেসে নিচের টেবিলগুলো রয়েছে:

mysql> Show tables in query;
+-----------------+
| Tables_in_query |
+-----------------+
| student_detail  |
| student_info    |
+-----------------+
2 rows in set (0.00 sec)

নিচের প্রোসিডিউর ডেটাবেসের নাম প্যারামিটার হিসেবে নিয়ে টেবিলের বিস্তারিত তথ্য দেবে:

mysql> DELIMITER//
mysql> CREATE procedure tb_list(db_name varchar(40))
    -> BEGIN
    -> SET @z := CONCAT('Select * from information_schema.tables WHERE table_schema = ','\'',db_name,'\'');
    -> Prepare stmt from @z;
    -> EXECUTE stmt;
    -> END //
Query OK, 0 rows affected (0.06 sec)

এখন ডেটাবেসের নাম দিয়ে প্রোসিডিউরটি আহ্বান করলে:

mysql> DELIMITER;
mysql> CALL tb_list('query')\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: query
TABLE_NAME: student_detail
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Dynamic
TABLE_ROWS: 4
AVG_ROW_LENGTH: 4096
DATA_LENGTH: 16384
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 0
DATA_FREE: 0
AUTO_INCREMENT: NULL
CREATE_TIME: 2017-12-13 16:25:44
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: latin1_swedish_ci
CHECKSUM: NULL
CREATE_OPTIONS:
TABLE_COMMENT:
*************************** 2. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: query
TABLE_NAME: student_info
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Dynamic
TABLE_ROWS: 4
AVG_ROW_LENGTH: 4096
DATA_LENGTH: 16384
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 0
DATA_FREE: 0
AUTO_INCREMENT: NULL
CREATE_TIME: 2017-12-12 09:52:51
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: latin1_swedish_ci
CHECKSUM: NULL
CREATE_OPTIONS:
TABLE_COMMENT:
2 rows in set (0.00 sec)

  1. MySQL ডেটাবেসে সংরক্ষিত ভিউগুলোর লিস্ট দেখা

  2. MySQL-এ DELIMITER ব্যবহার করে স্টোরড প্রোসিডিউর তৈরি করা

  3. MySQL-এ প্যারামিটারসহ স্টোরড প্রোসিজার তৈরি (IN/OUT)

  4. MySQL 저장 프로시저에서 현재 데이터베이스 이름 가져오기