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

MySQLデータベーステーブルのデータベースエンジンを変更するにはどうすればよいですか?


まず、MySQLデータベースのタイプ、つまりそのエンジンがInnoDBかMyISAMかを判別します。これを実現するには、information_schema.columns.tablesのエンジン列を使用します。

構文は次のとおりです。

SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = ’yourDatabaseName’
AND TABLE_NAME = ’yourTableName’;

ここに、「StudentInformations」という名前のテーブルがあります-

mysql> create table StudentInformations
   -> (
   -> StudentId int not null auto_increment,
   -> StudentFirstName varchar(20),
   -> StudentLastName varchar(20),
   -> Primary Key(StudentId)
   -> );
Query OK, 0 rows affected (0.57 sec)

これで、上記の構文の実装を使用して、テーブルがInnoDBまたはMyISAMを使用していることがわかります。私たちのデータベースは「テスト」です。

同じ-

のクエリは次のとおりです。
mysql> select engine from information_schema.tables
   -> where table_schema = 'test'
   -> and table_name = 'StudentInformations';

以下は出力です-

+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
1 row in set (0.05 sec)

alterコマンドを使用して、「StudentInformations」テーブルのエンジンを変更します。任意のテーブルのエンジンを変更するための構文は次のとおりです。

ALTER TABLE yourTableName ENGINE = ‘yourEngineName’;

ここで、エンジンInnoDBをMyISAMに変更しましょう。クエリは次のとおりです-

mysql> alter table StudentInformations ENGINE = 'MyISAM';
Query OK, 6 rows affected (1.84 sec)
Records − 6 Duplicates − 0 Warnings − 0

上に表示された結果は、テーブルに6行あるため、6行が影響を受けることを示しています。

テーブルがInnoDBからMyISAMに変換されているかどうかを確認するには、次のクエリを実行します-

mysql> select engine from information_schema.tables
   -> where table_schema = 'test'
   -> and table_name = 'StudentInformations';

エンジンが正常に更新されたことを示す出力は次のとおりです-

+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+
1 row in set (0.00 sec)

  1. MySQLデータベースにすでにある空のテーブルをチェックする方法は?

    空のテーブルがデータベースにあることを確認するには、テーブルからいくつかのレコードを抽出する必要があります。テーブルが空でない場合、テーブルレコードが返されます。 まずテーブルを作成しましょう- mysql> create table DemoTable(Id int,Name varchar(100),Age int); Query OK, 0 rows affected (0.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(1001,'John',23

  2. MySQLテーブルストレージエンジンを更新する方法

    MySQLテーブルエンジンを更新するには、次の構文に従います- 構文 alter table yourTableName ENGINE=InnoDB; まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(20),    -> StudentAge int, &nbs