Создание столбца для хранения умноженных значений из двух других столбцов

#sql #oracle #ddl

Вопрос:

Я новичок в SQL, и у меня проблема с установкой значения по умолчанию для столбца с помощью этой команды. Дело в том, что я должен получить цену продукта brutto.

 ALTER TABLE produkt
ADD vat DECIMAL(5,2) DEFAULT 0.23;

ALTER TABLE produkt
ADD price_br INTEGER DEFAULT var*PRICE_NET;
 

«продукт» — это мой стол
PRICE_NET-это чистая цена продукта.

После попытки добавить столбец price_br я получаю ошибку «столбец здесь не разрешен«. Я предполагаю, что это довольно простая задача, но я действительно не могу ее решить.

Ответ №1:

Я думаю, вам нужен вычисляемый столбец, а не значение по умолчанию. Это было бы:

 ALTER TABLE produkt ADD price_br INTEGER GENERATED ALWAYS AS (var*PRICE_NET);
 

Комментарии:

1. Отлично! Большое спасибо, что помогли мне.

2. @Filgum0326 . . . Если это ответ на ваш вопрос, вы можете принять ответ.