如何在MySQL中为set类型设置多个默认值?
我有一个名为“responsable”的列,这是一个如何在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` 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'
。