sql - psql move data to another table leaving refference to new row -
so, i`m writing migration.
my goal to:
create table, contains necessary fields move existing infosource table dest one. (insert info dest, update reference in source, setting dest_id id of created row in dest table) delete rows moved source table. i`m having difficulties step 2. ideas?
i have this:
do $$ declare os_id bigint; begin insert order_shipments (order_id, method_id, deliver_at, barcode, sent_at, city_id, subway_id) select o.id, o.shipment_method_id, o.courier_deliver_at, o.barcode, o.sent_at, o.courier_city_id, o.courier_subway_id orders o returning id os_id; end $$; update orders o set current_shipment_id = os_id; i'm creating anonymous block, takes info orders (source) , inserts order_shipments (dest).
just found rather simple solution.
thanks to question insert info , set foreign keys postgres
the result
with ( insert order_shipments (order_id, method_id, deliver_at, barcode, sent_at, city_id, subway_id) select o.id, o.shipment_method_id, o.courier_deliver_at, o.barcode, o.sent_at, o.courier_city_id, o.courier_subway_id orders o returning id ) update orders o set current_shipment_id = i.id i; sql postgresql migration
No comments:
Post a Comment