ENUM型(エナム型)

DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
  message VARCHAR(140), 
  likes INT,
  category ENUM('Gadget', 'Game', 'Business')
);

-- INSERT INTO posts (message, likes, category) VALUES 
--   ('Thanks', 12, 'Gadget'),
--   ('Arigato', 4, 'Game'),
--   -- ('Merci', 4, 'Fashion');
--   ('Merci', 4, 'Business');

INSERT INTO posts (message, likes, category) VALUES 
  ('Thanks', 12, 1),
  ('Arigato', 4, 2),
  ('Merci', 4, 3);

SELECT * FROM posts;

ENUM型で指定した文字列以外を登録した場合、エラーが返される。

登録した文字列のインデックス番号を指定しても表現できるので、コメントアウトしている部分のようにしなくても省略することができる。