【MySQL解決法】テーブル名に「references」を設定するとエラーが発生する原因と対処方法
エラーが発生する原因
MySQLでは、「references」は予約語(予約済みキーワード)としてシステムに登録されているため、そのままテーブル名として使用することができません。
しかし、テーブル名をバッククォート(`)で囲むことで、予約語であっても問題なく使用できるようになります。記述例は以下の通りです:`references`
テーブルを作成する
まず、バッククォートで囲んだ「references」という名前のテーブルを作成してみましょう。
mysql> create table `references`(Subject text); Query OK, 0 rows affected (0.44 sec)
「Query OK」と表示されれば、テーブルの作成は成功です。
INSERTコマンドでレコードを挿入する
次に、INSERTコマンドを使ってテーブルにデータを追加していきます。
mysql> insert into `references` values('Introduction To MySQL');
Query OK, 1 row affected (0.28 sec)
mysql> insert into `references` values('Introduction To MongoDB');
Query OK, 1 row affected (0.15 sec)
mysql> insert into `references` values('Introduction To Spring and Hibernate');
Query OK, 1 row affected (0.13 sec)
mysql> insert into `references` values('Introduction To Java');
Query OK, 1 row affected (0.18 sec)
4件のレコードが正常に挿入されました。
SELECT文でレコードを確認する
最後に、SELECT文を実行して、テーブル内のすべてのレコードが正しく登録されているか確認しましょう。
mysql> select *from `references`;
上記のクエリを実行すると、次のような結果が出力されます。
+--------------------------------------+ | Subject | +--------------------------------------+ | Introduction To MySQL | | Introduction To MongoDB | | Introduction To Spring and Hibernate | | Introduction To Java | +--------------------------------------+ 4 rows in set (0.00 sec)
まとめ
テーブル名に「references」などの予約語を使いたい場合は、必ずバッククォートで囲むことがポイントです。この書き方を覚えておけば、予約語との衝突によるエラーを回避できます。
-
MySQLでテーブル名に「group」を使うと構文エラーになる理由とバッククォートによる回避方法
MySQLにおいて「group」は予約語(リザーブドキーワード)です。そのため、テーブル名としてそのまま使用すると構文エラーが発生します。このエラーを回避するには、テーブル名「group」をバッククォート(`)で囲む必要があります。テーブルの作成例まず、バッククォートで囲んだテーブル名を使ってテーブルを作成してみましょう。mysql> create table `group` -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> );Query
-
MySQLでテーブルを作成し、現在の日付をデフォルト値として設定する方法
MySQLでは、テーブル作成時にDEFAULT制約を追加することで、カラムにデフォルト値を設定できます。日付型のカラムに対して現在の日付(CURRENT_DATE)をデフォルト値として指定すれば、レコード挿入時に明示的に値を渡さなくても自動的に当日の日付が登録されます。基本構文テーブルを作成し、DEFAULT制約を使ってデフォルト値を設定する際の基本的な構文は以下の通りです。CREATE TABLE yourTableName ( yourColumnName1 dataType not null , yourColumnName2 dataType default anyValue, . .