Heim  >  Artikel  >  Datenbank  >  Erstellen Sie eine gespeicherte MySQL-Prozedur, die den Datenbanknamen als Parameter verwendet und die Tabellen mit detaillierten Informationen in einer bestimmten Datenbank auflistet.

Erstellen Sie eine gespeicherte MySQL-Prozedur, die den Datenbanknamen als Parameter verwendet und die Tabellen mit detaillierten Informationen in einer bestimmten Datenbank auflistet.

王林
王林nach vorne
2023-09-10 12:21:071152Durchsuche

Erstellen Sie eine gespeicherte MySQL-Prozedur, die den Datenbanknamen als Parameter verwendet und die Tabellen mit detaillierten Informationen in einer bestimmten Datenbank auflistet.

Angenommen, wir verwenden derzeit eine Datenbank namens „query“, die die folgende Tabelle enthält:

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

Unten sehen Sie nun eine gespeicherte Prozedur, die den Namen der Datenbank als Parameter akzeptiert und uns die Details der Tabelle bereitstellt Liste der Informationen –

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)

Rufen Sie nun diese gespeicherte Prozedur auf, indem Sie den Datenbanknamen als Parameter angeben –

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)

Das obige ist der detaillierte Inhalt vonErstellen Sie eine gespeicherte MySQL-Prozedur, die den Datenbanknamen als Parameter verwendet und die Tabellen mit detaillierten Informationen in einer bestimmten Datenbank auflistet.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen