[MySQL] テーブル・インデックス作成

inno
2022-03-28 11:23 169 0

テーブル作成する方法を説明します。

データベース作成

CREATE DATABASE testdb CHARACTER SET utf8mb4;

 

テーブル作成

CREATE TABLE `tTempData` (
  `LogDate` date NOT NULL,
  `UserID` varchar(20) not null,
  `RegDate` datetime NOT NULL,
  PRIMARY KEY (`LogDate`,`Npsn`)
) CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

 

RegDateカラムにdefault値設定してテーブル作成

該当行のデータが更新された場合、自動で「RegDate」カラムの日付を更新します。

CREATE TABLE `tTempData` (
  `LogDate` date NOT NULL,
  `UserID` varchar(20) not null,
  `RegDate` datetime not null default current_timestamp on update current_timestamp,
  PRIMARY KEY (`LogDate`,`Npsn`)
) CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

 

index作成

上記のテーブルの「RegDate」カラムにindexを作成します。

ALTER TABLE tTempData ADD INDEX ix_tTempData_RegDate (RegDate);

 

index削除

DROP INDEX ix_tTempData_RegDate名 ON tTempData;

 

index再構築

ALTER TABLE [テーブル名] ENGINE INNODB

 

例)テーブル名が 「tTempData」の場合以下のように記述します。

ALTER TABLE tTempData ENGINE INNODB

 

index一覧を表示

SELECT table_schema, table_name, index_name, column_name, seq_in_index
FROM information_schema.statistics
WHERE table_schema = "データベース名";

コメント