В приведенном ниже коде, когда я вставляю в example_actions
значение example_id
должно ссылаться из example
, где platform
и platform_id
соответствуют таблице example
, которая у меня естьрабочий код ниже, но я не думаю, что это оптимальный способ сделать это, особенно когда мне нужно вставить миллионы записей.
create table example
(
id serial primary KEY,
platform text not null,
platform_id int not null,
unique(platform, platform_id)
);
create table example_actions
(
id serial primary key,
platform text not null,
platform_id int not null,
example_id int not null,
action text not null,
action_date timestamp not null,
unique(example_id, action, action_date)
)
;
insert into example(platform, platform_id)
values('miami', 1)
;
insert into example_actions(platform, platform_id, example_id, action, action_date)
select 'miami', 1, id, 'flew', '2018-01-01'
from example
where platform = 'miami'
and platform_id = 1;
insert into example_actions(platform, platform_id, example_id, action, action_date)
select 'miami', 1, id, 'drove', '2018-01-01'
from example
where platform = 'miami'
and platform_id = 1;
В таблице example_actions
должны быть созданы две строки с example_id
оба равны 1