2016-07-11 2 views
0

У меня есть таблица существующих запросов, в которой я хочу добавить новый столбец request_type. Я хочу, чтобы установить значение по умолчанию для этого столбца А, когда определенный столбец не пустой еще B. Я написал следующий запрос, который показывает синтаксическую ошибку для версии MySQL 5.7.9 -MySQL - добавление нового столбца со значением по умолчанию при выполнении условия

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) 

ответ

1

MySQL не поддерживает выражения для DEFAULT.

Но вы можете использовать новую функцию MySQL 5.7 для GENERATED колонка: http://mysqlserverteam.com/generated-columns-in-mysql-5-7-5/

Если вы используете более старую версию MySQL, вы бы использовать триггер, чтобы столбец перечислимого обновляются в соответствии с Идентификатор пользователя.

+0

[ссылка] (http://stackoverflow.com/questions/14632703/set-default-value-in-column-if-condition-is-met-in-sql-2008) Разве это не похоже? –

+0

Это вопрос о Microsoft SQL Server, который является другим продуктом и имеет разные функции. –

+0

О, извините. Виноват. –

Смежные вопросы