MySQLインデックスのリストを取得するにはどうすればよいですか?
まず、MySQLからインデックスを表示する方法を見てみましょう。そのためには、SHOWコマンドを使用します。
インデックスを表示するクエリは次のとおりです-
mysql> SHOW INDEX FROM indexingdemo;
これが出力です。
+--------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +--------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | indexingdemo | 1 | indexName | 1 | Name | A | 0 | NULL | NULL | YES | BTREE | | | YES | +--------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 1 row in set (0.17 sec)
次のクエリを使用して、MySQLインデックスのリストを取得できます。
その前に、まず構文を見てみましょう。
SELECT DISTINCT TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'yourDatabaseName';
次に、上記の構文を適用して、MySQLインデックスのリストを取得しましょう。
mysql> SELECT DISTINCT -> TABLE_NAME, -> INDEX_NAME -> FROM INFORMATION_SCHEMA.STATISTICS -> WHERE TABLE_SCHEMA = 'business';
以下は、インデックスのリストを表示する出力です。
+--------------------------+------------------+ | TABLE_NAME | INDEX_NAME | +--------------------------+------------------+ | addcolumntable | Name_Index | | addingautoincrement | PRIMARY | | addingunique | name | | autoincrement | PRIMARY | | autoincrementtable | PRIMARY | | bookindexes | BookName | | childdemo | ConstChild | | clonestudent | idIndex | | clonestudent | NameStuIndex | | college | PRIMARY | | compositeprimarykey | PRIMARY | | demoauto | PRIMARY | | demoindex | PRIMARY | | demoschema | idDemoIndex | | duplicatebookindexes | BookName | | employeeinformation | PRIMARY | | foreigntable | constFKPK | | foreigntabledemo | FKConst | | functionindexdemo | indFirstName | | indexingdemo | indexName | | keydemo | PRIMARY | | lastinsertrecordiddemo | PRIMARY | | multipleindexdemo | id | | nextiddemo | PRIMARY | | parentdemo | PRIMARY | | primarytable | PRIMARY | | primarytable1 | PRIMARY | | primarytabledemo | PRIMARY | | schemadatabasemethoddemo | PRIMARY | | sequencedemo | PRIMARY | | student | idIndex | | student | NameStuIndex | | studentenrollment | StudCollegeConst | | tabledemo2 | ConstFK | | tabledemo3 | ConstFK | | tablepri | PRIMARY | | tblf | ConstFK | | tblp | PRIMARY | | transcationdemo | PRIMARY | | triggedemo | PRIMARY | | uniqueautoid | id | | uniqueconstdemo | name | | uniquedemo | name | | uniquedemo1 | id | | updtable | PRIMARY | | usernameandpassworddemo | PRIMARY | | usernameandpassworddemo | UserId | +--------------------------+------------------+ 47 rows in set (0.07 sec)
-
MySQLで主キーを削除するにはどうすればよいですか?
主キーを削除するには、最初にALTERを使用してテーブルを変更します。それで、DROPを使用して以下のようにキーをドロップします 構文 alter table yourTableName drop primary key; まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> StudentId int NOT NULL, -> StudentName varchar(20), -> StudentAge
-
列がMySQLの主キーであるかどうかをどのように取得しますか?
列が主キーであるかどうかを取得するには、COLUMN_NAMEおよびCOLUMN_KEY=PRIを使用します。これで、全体の構文は次のようになります- select column_name, case when column_key= 'PRI' then 'yourMessage1' else ''yourMessage2' end as anyAliasName from information_schema.columns where table_schema =database() and `table_name` = yourT