IT用語集 › データベース › ENUM型

ENUM型

データベース Svenska → 更新: 2026-10-22

固定値のリストを表すSQLの型。CREATE TYPE status AS ENUM ('active','pending','closed')のように定義し、型安全で、保存も効率的(文字列ではなく4バイトのOIDで格納)。

PostgreSQLでは定義した順序が保たれ、ソートもその順になる。MySQLのENUMはずっと古く、挙動が少し異なる。代償として、値を変更するにはALTER TYPEが必要で、大きなテーブルでは高くつくことがある。そのため経験を積んだ開発者の多くは、VARCHARにCHECK制約を組み合わせる方を好む。柔軟で、マイグレーションの苦労も少ないからだ。典型的な落とし穴は、最初は「draft」だけだったのに後から「scheduled」を足したくなり、本番DBに対するALTERが必要になるケース。より柔軟な代替案は、外部キーで参照するルックアップテーブルである。

← 用語集に戻る