MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLテーブルのUNIQUE制約によって作成されたインデックスを確認するにはどうすればよいですか?


インデックスを表示 ステートメントは、MySQLテーブルのUNIQUE制約によって作成されたインデックスをチェックするために使用されます。

構文
SHOW INDEX from table_name;

列「empno」にUNIQUE制約があるテーブル「empl」があるとします。

mysql> describe empl;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| empno  | int(11)     | YES  | UNI | NULL    |       |
| F_name | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.23 sec)

UNIQUE制約により、次のクエリからチェックできるインデックスが作成されることがわかったので、-

mysql> Show Index from empl\G
*************************** 1. row ***************************
       Table: empl
   Non_unique: 0
     Key_name: empno
 Seq_in_index: 1
  Column_name: empno
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
1 row in set (0.02 sec)

「key_name」 上記の結果セットには、インデックスの名前と「column_name」が表示されています。 このインデックスが追加された列の名前です。


  1. BEFORE INSERTトリガーを使用して、テーブルに値を挿入するためのCHECK CONSTRAINTをエミュレートするにはどうすればよいですか?

    MySQLは参照整合性のために外部キーをサポートしていますが、CHECK制約はサポートしていません。ただし、トリガーを使用してそれらをエミュレートできます。以下に示す例を使用して説明できます- 例 次のように、2文字、ダッシュ、3桁、ダッシュ、2文字のような修正構文登録番号を持つことができる「car」という名前のテーブルがあるとします- mysql> Create table car (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car values('AB-235-YZ

  2. MySQLテーブルに列が存在するかどうかを確認するにはどうすればよいですか?

    列が存在するかどうかを理解するために、次のアプローチがあります- DESCコマンドを使用して SHOWコマンドの使用 まず、列のあるテーブルを作成します- mysql> CREATE table ColumnExistDemo -> ( -> UniqueId int, -> UniqueName varchar(200), -> UniqueAddress varchar(200) -> ); Query OK, 0 rows affected (0.57 sec) 最初のアプローチでは、意味のある情報を含む列名全体を取得します。構文は次のとおりで