S)
Size: a a a
VK
П️
П️
П️
VF
CREATE TABLE user_project (хочу добавить табличку:
id varchar(255) NOT NULL,
user_email varchar(255) NULL,
-- и еще около 20 колонок
CONSTRAINT user_project_pkey PRIMARY KEY (id)
);
create table app_user (и заменить в user_project колонку user_email на user_id которая будет foreign key на app_user.
id varchar default uuid_generate_v4(),
email varchar not null
);
-- наполняем app_user существующими имейлами, их получиться ~10 млн.
-- возможно ли наполнить табличку быстрее чем здесь?
insert into app_user(email) select distinct user_email from user_project;
alter teble app_user add constraint idx_unique_email unique (email);
alter table app_user add constraint pk_id_app_user primary key (id);
-- делаем копию таблицы с новой колонкой user_id
-- тут вопрос, что должно быть быстрее: join или вложеный select?
create table new_user_project as SELECT user_project.*, (select u.id from app_user as u where user_email = u.email) as user_id FROM user_project;
alter table new_user_project drop column user_email;
--восстановляем индексы
YS
CREATE TABLE user_project (хочу добавить табличку:
id varchar(255) NOT NULL,
user_email varchar(255) NULL,
-- и еще около 20 колонок
CONSTRAINT user_project_pkey PRIMARY KEY (id)
);
create table app_user (и заменить в user_project колонку user_email на user_id которая будет foreign key на app_user.
id varchar default uuid_generate_v4(),
email varchar not null
);
-- наполняем app_user существующими имейлами, их получиться ~10 млн.
-- возможно ли наполнить табличку быстрее чем здесь?
insert into app_user(email) select distinct user_email from user_project;
alter teble app_user add constraint idx_unique_email unique (email);
alter table app_user add constraint pk_id_app_user primary key (id);
-- делаем копию таблицы с новой колонкой user_id
-- тут вопрос, что должно быть быстрее: join или вложеный select?
create table new_user_project as SELECT user_project.*, (select u.id from app_user as u where user_email = u.email) as user_id FROM user_project;
alter table new_user_project drop column user_email;
--восстановляем индексы
VF
VF
VK
EK
VK
VF
EK
EK