背景
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
というカラム名の使用は可能ですが、予期しない問題を避けるためには、別の名前を使用することが最良の選択です。