MySQLで予約語をテーブル名または列名として使用しているときに発生するエラーを解決するにはどうすればよいですか?
このエラーは、予約語をテーブル名または列名として使用しようとしたときに発生します。 -
が原因で発生する可能性がありますケース1 :予約語をテーブル名として使用する場合-
mysql> create table insert −> ( −> Id int −> );
エラーは次のとおりです-
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 'insert ( Id int )' at line 1
上記のエラーは、「挿入」という単語がMySQLのキーワードであるために発生しました。
ケース2 −MySQLで予約語を列名として使用する場合。
mysql> create table Customers −> ( −> Add int −> );
エラーは次のとおりです-
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 'Add int )' at line 3
上記のエラーは、列名「Add」がMySQLで予約語であるために発生しました。
上記のエラーを回避するには、MySQLのすべての予約語について知っておく必要があります
MySQLの予約語の一部は次のとおりです-
Insert Add Is Key Like etc.
MySQLの予約済みキーワードの完全なリストは次のとおりです。これはMySQLの公式ウェブサイトです-https://dev.mysql.com/doc/refman/5.7/en/keywords.html
この問題を解決するには、reservedキーワードでバックティックを使用します。
注 -テーブル名または列名に予約済みキーワードを使用することはできません。ただし、バックティックでそれらを含めることは正しいと見なされます。
例-
create table `insert`
テーブルと列名を使用したバックティックのデモ。
mysql> create table `Insert` −> ( −> `Add` int −> ); Query OK, 0 rows affected (0.59 sec)
バックティックを使用すると、エラーは発生しません。
-
「index」という名前のテーブル列を作成する際のMySQL構文のエラーを修正しますか?
予約語であるため、インデックスを列名として使用することはできません。このためには、列名の前後にバッククォートを使用する必要があります。 列名として予約語を使用すると、次のエラーが表示される可能性があります- mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> index int -> )ENGINE=MyISAM; ERROR 1064 (42
-
テーブル名として「group」を使用しているときのMySQL構文エラー(SELECTクエリ内)
グループは予約済みのキーワードであるため、テーブル名として使用することはできません。したがって、テーブル名として使用するとエラーが発生します。このようなエラーを回避するには、テーブル名「group」の前後に囲まれたバッククォート記号を使用する必要があります。 例を見て、テーブルを作成しましょう- mysql> create table `group` -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20)