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

「index」という名前のテーブル列を作成する際のMySQL構文のエラーを修正しますか?


予約語であるため、インデックスを列名として使用することはできません。このためには、列名の前後にバッククォートを使用する必要があります。

列名として予約語を使用すると、次のエラーが表示される可能性があります-

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> index int
   -> )ENGINE=MyISAM;
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 'int )ENGINE=MyISAM' at line 4

まず、テーブルを作成しましょう。ここでは、列名として予約語インデックスを使用していますが、バッククォートで囲んでもエラーは発生しません-

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> `index` int
   -> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.28 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(`index`) values(4);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(`index`) values(8);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable(`index`) values(12);
Query OK, 1 row affected (0.06 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+-------+
| Id | index |
+----+-------+
|  1 |     4 |
|  2 |     8 |
|  3 |    12 |
+----+-------+
3 rows in set (0.00 sec)

  1. MySQLを使用してJavaでResultSetの列名を取得するにはどうすればよいですか?

    結果セットの列名を取得するには、getMetaData()メソッドを使用する必要があります。 getMetadata()のプロトタイプは次のとおりです- ResultSetMetaData getMetaData throws SQLException; 5つの列名を持つMySQLテーブルを作成します。テーブルを作成するためのクエリは次のとおりです- mysql> create table javagetallcolumnnames    -> (    -> Id int NOT NULL AUTO_INCREMENT,  

  2. MySQLでテーブルを作成する-Hibernate

    テーブルを作成するには、以下の行をapplication.propertiesに挿入する必要があります- spring.jpa.hibernate.ddl-auto=update ここで、Hibernateはテーブルdemo88を自動的に作成します。 application.propertiesコードは次のとおりです- spring.datasource.platform=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.hibernate.ddl-auto=upda