1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MySQL】テーブル作成時、カラム名が予約語だったときの対処法

Last updated at Posted at 2024-10-30

背景

DDL作成時に、「key」というカラム名を持つテーブルに遭遇した。
以下の状態でCREATE文を実行すると、エラーが起きる。

CREATE TABLE example (
    id INT PRIMARY KEY,
    key VARCHAR(255) NOT NULL
);

原因

key はインデックスを示すための予約語として使用されるため、カラム名として使用すると、クエリが正しく解析されない可能性があります。

改善策

1. バックティックで囲む

もしどうしても key という名前を使用する場合は、バックティックで囲むことで使用可能ですが、推奨はしません。

CREATE TABLE example (
    id INT PRIMARY KEY,
    `key` VARCHAR(255) NOT NULL  -- バックティックで囲んでいる
);

2. 別の名前を使用

より明確で分かりやすいカラム名を使用することをお勧めします。例えば、user_key や api_key などの名前に変更すると良いでしょう。

まとめ

key というカラム名の使用は可能ですが、予期しない問題を避けるためには、別の名前を使用することが最良の選択です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?