Команда Set при создании таблицы в Mysql

#mysql #sql #relational-database

#mysql #sql #реляционная база данных

Вопрос:

Я обнаружил, что запрос не получает фактического значения, посмотрите.

 CREATE TABLE pizza_order (
    menu_id     INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, 
    item_name   VARCHAR(20NOT NULL,
    toppings    SET('Cheese','Sausage','Pepperoni','Ham','Pinapple','Salami') NOT NULL
);
  

Здесь не получается этот «SET», что это значит и что на самом деле он делает.

Комментарии:

1. Руководство — хорошее место для начала dev.mysql.com/doc/refman/8.0/en/set.html

2. Вот она: dev.mysql.com/doc/refman/8.0/en/set.html

Ответ №1:

SET Тип в MySQL позволяет этому столбцу иметь нулевое или более значений. См. 11.3.6 Тип SET.

В этом случае столбец toppings может содержать любой из:

  • Сыр
  • Колбаса
  • Пепперони
  • Ham
  • Pinapple
  • Салями

Хотя она выполняет свою работу, это очень жесткая форма хранения данных. Что, если вы хотите динамически добавлять начинки, о которых разработчик не подумал?