У меня есть .sql
файлы, содержащие запрос, как показано ниже:
begin;
CREATE TABLE public_local.account (
id bigint,
title text,
phone_prefix_list_id bigint,
company_account_id bigint,
created_at timestamp,
updated_at timestamp
);
COMMIT;
begin;
CREATE TABLE public_local.phones (
id integer,
customer_id integer,
company_id integer,
balance_cents bigint,
created_at timestamp,
updated_at timestamp
);
COMMIT;
Я намерен изменить только часть CREATE
, чтобы она выглядела следующим образом:
begin;
INSERT INTO public_global.account SELECT * FROM public.dblink('mercury_local','SELECT * FROM account') as account(
id bigint,
title text,
phone_prefix_list_id bigint,
company_account_id bigint,
created_at timestamp,
updated_at timestamp
);
COMMIT;
begin;
INSERT INTO public_global.phones SELECT * FROM public.dblink('mercury_local','SELECT * FROM phones') as phones(
id integer,
customer_id integer,
company_id integer,
balance_cents bigint,
created_at timestamp,
updated_at timestamp
);
COMMIT;
Как мне изменить строку CREATE TABLE
на INSERT INTO
, используя AWK
и SED
внутри скрипта bash?
Мне удалось создать строки INSERT INTO
, но я все еще могу 'не могу понять, как заменить CREATE TABLE
строки
Примечание: я пытался найти тот же вопрос или аналогичный, но все еще не могу найти ту же ситуацию, что и я.