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

Рейтинг: 0Ответов: 2Опубликовано: 19.01.2023

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

insert into table t (new_column)

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

commit;

Ответы

▲ 3Принят

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

ALTER TABLE table
ADD (nc varchar(512) GENERATED ALWAYS AS (column_1 || '-' || column_2 || '-' || column_3 || '-' || column_4) VIRTUAL);
▲ 0

варианты:

  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