Как связать данные нескольких столбцов и вставить их в новый столбец одной и той же таблицы

У меня есть таблица где есть данные, но теперь нужно добавить новый столбец (я отдельно добавил ее - new_column) и в нее вставить запись собранной из других столбцов той же таблицы, пытался сделать так но не работает:

insert into table t (new_column)

select (column_1 || '-' || column_2 || '-' || column_3 || '-' || column_4) nc from table;

commit;


Ответы (2 шт):

Автор решения: Vitaliy Zlobin

В таком случае, лучше всего, подходит вычисляемый столбец:

ALTER TABLE table
ADD (nc varchar(512) GENERATED ALWAYS AS (column_1 || '-' || column_2 || '-' || column_3 || '-' || column_4) VIRTUAL);
→ Ссылка
Автор решения: МимоХодом

варианты:

  1. буквальный:

    update t set new_column= column_1 || '-' || column_2 || '-' || column_3 || '-' || column_4 
    
  2. почему бы не использовать вьюшку? вида:

    CREATE OR REPLACE  VIEW new_t as
    select 
      t.*,
      column_1 || '-' || column_2 || '-' || column_3 || '-' || column_4 as new_column  
    from t  
    
→ Ссылка