#mysql #case #virtual
#mysql #регистр #виртуальный
Вопрос:
версия mysql 5.7.25
Этот SQL возвращает ошибку 1064.
ALTER TABLE `contract`
ADD `newcolumn` INT
AS (CASE WHEN `price`=0 THEN `column1` ELSE `column2`)
STORED;
Чтобы упростить эту ошибку, я попробовал использовать приведенный ниже SQL, но он возвращает 1064.
ALTER TABLE `contract`
ADD `newcolumn` INT
AS (
CASE WHEN (price=0) THEN 1
ELSE 2
) STORED
Комментарии:
1. Также опубликуйте структуру таблицы
SHOW CREATE TABLE contract
2. Вам не хватает
END
предложения попробуйтеALTER TABLE contract ADD newcolumn INT AS (CASE WHEN (price=0) THEN 1 ELSE 2 END) STORED ;
, если это не сработает, попробуйтеALTER TABLE contract ADD newcolumn INT GENERATED ALWAYS AS (CASE WHEN price=0 THEN column1 ELSE column2 END) STORED;
3. КОНЕЦ сработал! Спасибо.