我有一个现有的请求表,我想在其中添加一个新列request_type。我想将某个列的默认值设置为A,当某个列不为null时,否则为B.我编写了以下查询,显示MySQL版本5.7.9的语法错误 -
alter table requests
add column request_type enum('A','B','C') collate utf8_unicode_ci not null default (case when userid is not null then 'A' else 'B' end)
答案 0 :(得分:1)
MySQL不支持DEFAULT
的表达式。
但您可以在GENERATED
列中使用MySQL 5.7的新功能:http://mysqlserverteam.com/generated-columns-in-mysql-5-7-5/
如果您使用的是旧版本的MySQL,则必须使用触发器根据用户ID更新枚举列。