У меня есть таблица sample_source
, которая содержит 4 столбца:
---------------------------------------------------
|id | name | target_value | another_target_value |
===================================================
|1 | John | 'wow' | 'value' |
---------------------------------------------------
|2 | Liza | 'wow' | 'value' |
---------------------------------------------------
|3 | Mark | 'awesome' | 'value' |
---------------------------------------------------
|4 |Daniel| 'awesome' | 'value' |
---------------------------------------------------
И я хочу извлечь target_value
и another_target_value
в таблицу values
(с дублированием)
Tryingнапишите что-то вроде
with cte as (insert into values(target_value, another_target_value)
select target_value, another_target_value from sample_source t1
returning id, t1.id as source_id)
update
sample_source
set
value_id = cte.id
where
sample_source.id = cte.source_id
на основе этого обсуждения , но я не могу использовать sample_source
таблицу в возвращаемом предложении
UPD Ожидаемый результат:
sample_source
------------------------
|id | name | value_id |
========================
|1 | John | 1 |
------------------------
|2 | Liza | 2 |
------------------------
|3 | Mark | 3 |
------------------------
|4 |Daniel| 4 |
------------------------
values
--------------------------------------------
|id | target_value | another_target_value |
============================================
|1 | 'wow' | 'value' |
--------------------------------------------
|2 | 'wow' | 'value' |
--------------------------------------------
|3 | 'awesome' | 'value' |
--------------------------------------------
|4 | 'awesome' | 'value' |
--------------------------------------------
конечно у меня есть create
, alter
и другие скрипты, проблема только с перемещением данных