Showtablesinquery;+-----------------+|Tables_in_query|+----- ------------+|student_detail ||student_info |+-----------------+2rowsinset(0.00sec)Maintenant, ce qui suit est un fichier stocké procédure , qui acceptera le nom de la base de données comme argument et nous fournira le"/> Showtablesinquery;+-----------------+|Tables_in_query|+----- ------------+|student_detail ||student_info |+-----------------+2rowsinset(0.00sec)Maintenant, ce qui suit est un fichier stocké procédure , qui acceptera le nom de la base de données comme argument et nous fournira le">

Maison  >  Article  >  base de données  >  Créez une procédure stockée MySQL qui prend le nom de la base de données comme paramètre et répertorie les tables d'une base de données spécifique contenant des informations détaillées.

Créez une procédure stockée MySQL qui prend le nom de la base de données comme paramètre et répertorie les tables d'une base de données spécifique contenant des informations détaillées.

王林
王林avant
2023-09-10 12:21:071201parcourir

Créez une procédure stockée MySQL qui prend le nom de la base de données comme paramètre et répertorie les tables dune base de données spécifique contenant des informations détaillées.

Supposons que nous utilisions actuellement une base de données appelée "query" qui contient le tableau suivant -

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

Maintenant, ci-dessous se trouve une procédure stockée qui acceptera le nom de la base de données comme paramètre et nous fournira les détails du tableau liste d'informations -

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)

Appelez maintenant cette procédure stockée en fournissant le nom de la base de données comme paramètre -

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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer