如何在MySQL中为set类型设置多个默认值?

如何在MySQL中为set类型设置多个默认值?,mysql,set,Mysql,Set,我有一个名为“responsable”的列,这是一个集合类型数据,可以有以下值: `responsable` SET('creator', 'owner', 'amdmin', 'dev', 'client', 'operator') 默认情况下,此字段选择“客户机”和“操作员”,因此我尝试了如下操作: CHANGE COLUMN `responsable` `responsable` SET('creator', 'owner', 'amdmin', 'dev', 'client', 'op

我有一个名为“responsable”的列,这是一个
集合
类型数据,可以有以下值:

`responsable` SET('creator', 'owner', 'amdmin', 'dev', 'client', 'operator')
默认情况下,此字段选择“客户机”和“操作员”,因此我尝试了如下操作:

CHANGE COLUMN `responsable` `responsable`
SET('creator', 'owner', 'amdmin', 'dev', 'client', 'operator')
NULL DEFAULT 'client','operator';
这不起作用(“操作员”附近出现错误)

如何在set type中设置多个默认值?

A由单个字符串值表示

SET
是一个字符串对象,可以有零个或多个值,每个值 必须从指定的允许值列表中选择 该表已创建<代码>集合由多个集合组成的列值 成员由逗号(,)分隔的成员指定。A. 这样做的结果是
SET
成员值本身不应 包含逗号

试试这个:

ALTER TABLE my_table CHANGE COLUMN `responsable` `responsable`
  SET('creator', 'owner', 'amdmin', 'dev', 'client', 'operator')
    NULL DEFAULT 'client,operator';

但是,我建议不要使用SET数据类型。因为它只是一个逗号分隔的列表,所以大多数缺点都适用于它。考虑对架构进行规范化,并使用单独的表<代码>职责< /代码> ./p> 例如:如果
用户id=253
的用户有责任
客户
操作员
,则
责任
表中有两个条目:

user_id | responsibility
--------|---------------
    253 | client
    253 | operator

它是有效的,我在任何地方都找不到关于它的任何参考或帮助(我甚至在MySQL文档中找到了它),除了你@stramin文档中的第一个示例是
SET('one','two')
,其中一个值是
'one,two'