sql >> データベース >  >> RDS >> Mysql

MySQLでのテーブルメタデータの取得

    MySQLの場合:

    1)テーブル/フィールドのメタデータを取得する

    SELECT table_schema, table_name, column_name, ordinal_position, data_type, 
           numeric_precision, column_type, column_default, is_nullable, column_comment 
      FROM information_schema.columns 
      WHERE (table_schema='schema_name' and table_name = 'table_name')
      order by ordinal_position;
    

    または

    show fields from 'table_name' 
    

    2)ForegnKeys参照テーブルを取得します

    SELECT `REFERENCED_TABLE_NAME` 
       FROM `information_schema`.`KEY_COLUMN_USAGE`
       WHERE
           `TABLE_NAME` = 'table_name' AND
           `COLUMN_NAME` = 'Column_Name'
    

    3)テーブルのインデックス(プライマリおよび外部)を取得します

    show keys from `table_name`
    

    5)すべてのインデックスと参照テーブルを取得する

    SELECT *
      FROM `KEY_COLUMN_USAGE`
      WHERE
          `TABLE_NAME` = 'table_name' AND
          `TABLE_SCHEMA` = 'schema_name'
    

    または

    SELECT *
      FROM `REFERENTIAL_CONSTRAINTS`
      WHERE
          `TABLE_NAME` = 'table_name' AND
          `CONSTRAINT_SCHEMA` = 'schema_name'
    

    6)ストアドプロシージャを取得する

    SELECT * 
      FROM `ROUTINES`
      WHERE
         `ROUTINE_SCHEMA` = 'schema_name'
    

    7)トリガーを取得する

    SELECT * 
      FROM `TRIGGERS`
      WHERE 
         `TRIGGER_SCHEMA` = 'schema_name'
    

    8)イベントを取得する

    SELECT * 
      FROM `EVENTS`
      WHERE 
         `EVENT_SCHEMA` = 'schema_name'
    

    9)ビューを取得する

    SELECT *
      FROM `VIEWS`
      WHERE
          `TABLE_NAME` = 'table_name' AND
          `TABLE_SCHEMA` = 'schema_name'
    


    1. タイムスタンプのインデックス:インデックス式の関数はIMMUTABLEとしてマークする必要があります

    2. mysql_real_escape_string VSaddslashes

    3. mysqlREGEXPが一致しません

    4. Access2016でデータベースを自動的に圧縮および修復する方法