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」が表示されています。 このインデックスが追加された列の名前です。
-
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
-
MySQLテーブルに列が存在するかどうかを確認するにはどうすればよいですか?
列が存在するかどうかを理解するために、次のアプローチがあります- DESCコマンドを使用して SHOWコマンドの使用 まず、列のあるテーブルを作成します- mysql> CREATE table ColumnExistDemo -> ( -> UniqueId int, -> UniqueName varchar(200), -> UniqueAddress varchar(200) -> ); Query OK, 0 rows affected (0.57 sec) 最初のアプローチでは、意味のある情報を含む列名全体を取得します。構文は次のとおりで