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

MySQLで「TYPE=InnoDB」を指定するとエラーになる?正しいストレージエンジンの指定方法

MySQLでテーブルを作成する際に「TYPE = InnoDB」と指定すると、構文エラーが発生します。これは、TYPE 構文が MySQL 5.1 で廃止(非推奨)になったためです。代わりに「ENGINE = InnoDB」を使用してください。

MySQLのバージョン確認方法

本記事の動作確認には MySQL 8.0.12 を使用しています。まずは、使用中の MySQL のバージョンを確認しておきましょう。バージョンは以下のクエリで確認できます。

mysql> select version();

実行結果:

+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.00 sec)

「TYPE = InnoDB」を指定した場合(エラーになる例)

実際に「TYPE = InnoDB」を使ってテーブルを作成しようとすると、MySQL 8.0 では次のようなエラーが表示されます。

mysql> create table Product_Information
    -> (
    -> ProductId int,
    -> ProductName varchar(10),
    -> ProductDeliveryDate datetime
    -> )"TYPE = InnoDB";
ERROR 1064 (42000) - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"TYPE = InnoDB"' at line 6

このように ERROR 1064(SQL構文エラー) が発生し、テーブルを作成することができません。

「ENGINE = InnoDB」を指定した場合(正常に動作する例)

次に、「TYPE」の代わりに「ENGINE」を使用した例を見てみましょう。

mysql> create table Product_Information
    -> (
    -> ProductId int,
    -> ProductName varchar(10),
    -> ProductDeliveryDate datetime
    -> )ENGINE = InnoDB;
Query OK, 0 rows affected (0.73 sec)

今度はエラーが発生せず、テーブルが正常に作成されました。

まとめ

  • 「TYPE = InnoDB」は MySQL 5.1 以降で廃止された古い構文であり、現在のバージョンでは構文エラー(ERROR 1064)となる。
  • ストレージエンジンを指定する場合は「ENGINE = InnoDB」を使用する。
  • 古いSQLスクリプトを流用する際は、TYPE を ENGINE に置き換える必要がある。
  1. Java JDBCでMySQLのCOUNTクエリを実行したときの戻り値の型は何?取得方法を解説

    COUNT関数の戻り値の型は「long」 MySQLのCOUNT()関数をJava JDBCから実行した場合、戻り値の型はlong型になります。結果を取得するには、ResultSetのgetLong()メソッドを使用します。 rs.next(); long result = rs.getLong(anyAliasName); 以下では、サンプルデータベース「test3」を使って、実際にテーブルを作成し、COUNTクエリの結果をJavaで取得する手順を順番に解説します。 1. サンプルテーブルの作成 まず、テスト用のテーブルを作成します。テーブル作成用のSQLは次のとおりです。 mysql&g

  2. MySQLではInnoDBはデフォルトで有効になっている?ストレージエンジンの確認方法を解説

    MySQLにおけるInnoDBのデフォルト設定 はい、MySQLではInnoDBはデフォルトで有効になっています。特にMySQL 5.5以降ではInnoDBが標準のストレージエンジンとして採用されているため、CREATE文で明示的に指定しなくても自動的にInnoDBが使用されます。 ここでは、MySQL 8.0の環境を使って実際に確認していきましょう。まずは現在使用中のバージョンをチェックします。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1