Showtablesinquery;+-----------------+|Tables_in_query|+------ ------------+|butiran_pelajar ||maklumat_pelajar |+------------------+2rowsinset(0.00sec)Sekarang, berikut ialah stored procedure , yang akan menerima nama pangkalan data sebagai hujahnya dan memberikan kami"/> Showtablesinquery;+-----------------+|Tables_in_query|+------ ------------+|butiran_pelajar ||maklumat_pelajar |+------------------+2rowsinset(0.00sec)Sekarang, berikut ialah stored procedure , yang akan menerima nama pangkalan data sebagai hujahnya dan memberikan kami">

Rumah >pangkalan data >tutorial mysql >Buat prosedur tersimpan MySQL yang mengambil nama pangkalan data sebagai parameter dan menyenaraikan jadual yang mengandungi maklumat terperinci dalam pangkalan data tertentu.

Buat prosedur tersimpan MySQL yang mengambil nama pangkalan data sebagai parameter dan menyenaraikan jadual yang mengandungi maklumat terperinci dalam pangkalan data tertentu.

王林
王林ke hadapan
2023-09-10 12:21:071221semak imbas

Buat prosedur tersimpan MySQL yang mengambil nama pangkalan data sebagai parameter dan menyenaraikan jadual yang mengandungi maklumat terperinci dalam pangkalan data tertentu.

Katakan pada masa ini kita menggunakan pangkalan data bernama "query" yang mengandungi jadual berikut -

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

Sekarang, berikut ialah prosedur tersimpan yang akan menerima nama pangkalan data sebagai parameternya dan memberikan kami senarai jadual dengan butiran -

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)

Sekarang panggil prosedur tersimpan ini dengan memberikan nama pangkalan data sebagai parameternya -# 🎜🎜#

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)

Atas ialah kandungan terperinci Buat prosedur tersimpan MySQL yang mengambil nama pangkalan data sebagai parameter dan menyenaraikan jadual yang mengandungi maklumat terperinci dalam pangkalan data tertentu.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam