首页 > 解决方案 > Mysql中建表中的set命令

问题描述

我发现一个查询没有得到它的实际意思,看看。

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

这里没有得到这个“SET”它的含义和它的实际作用。

标签: mysqlsqlrelational-database

解决方案


MySQL 中的SET类型允许该列具有零个或多个值。请参阅11.3.6 SET 类型

在这种情况下,该列toppings可以包括以下任何一项:

  • 奶酪
  • 香肠
  • 意大利辣香肠
  • 火腿
  • 菠萝
  • 萨拉米

尽管它可以完成这项工作,但它是一种非常严格的数据存储形式。如果您想动态添加开发人员没有想到的浇头怎么办?


推荐阅读