Size: a a a

2020 October 02

S)

Shokha )) in dbGeeks
Переслано от Shokha ))
id | login | type
1     admin  2
2     admin  2
3      admin 3

вот должен ругаться на 3 запис
источник

VK

Vladimir Karamazov in dbGeeks
Shokha ))
Переслано от Shokha ))
id | login | type
1     admin  2
2     admin  2
3      admin 3

вот должен ругаться на 3 запис
Как мне кажется, такую логику проверки на уникальность лучше писать в клиентском (по отношению к базе) коду
источник

VK

Vladimir Karamazov in dbGeeks
Либо запросом insert into ... where not exists (select 1 from users where login = 'admin' and type != 2), но в таком случае ругаться не будет, просто вставка не произойдёт
источник
2020 October 03

HR

HELEN Romani in dbGeeks
Переслано от Линур
Красава
источник
2020 October 10

П️

Пётр ️🕸👾🕸... in dbGeeks
Переслано от Пётр ️🕸👾🕸...
Ъять!! Почему после переноса дата папки мусуль 8 ребутится в цикле?!¡
источник

🇻

🇻 🇱 🇦 🇩 in dbGeeks
Пётр ️🕸👾🕸
Переслано от Пётр ️🕸👾🕸
Ъять!! Почему после переноса дата папки мусуль 8 ребутится в цикле?!¡
права?
источник

🇻

🇻 🇱 🇦 🇩 in dbGeeks
запустить mysqld и посмотреть
источник

П️

Пётр ️🕸👾🕸... in dbGeeks
Оно, что на источнике, что на приёмнике, в Докере примонтировано
источник

П️

Пётр ️🕸👾🕸... in dbGeeks
Та уже, заливаю через SQL
источник
2020 October 12

VF

Viktor Fedinchuk in dbGeeks
posgres 9.6
Есть табличка на 80млн records:
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 (
 id varchar default uuid_generate_v4(),
 email varchar not null
);
и заменить в user_project колонку user_email на user_id которая будет foreign key на app_user.
в результате навалял скрипт который очень медленный:
-- наполняем 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

Yaroslav Schekin in dbGeeks
Viktor Fedinchuk
posgres 9.6
Есть табличка на 80млн records:
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 (
 id varchar default uuid_generate_v4(),
 email varchar not null
);
и заменить в user_project колонку user_email на user_id которая будет foreign key на app_user.
в результате навалял скрипт который очень медленный:
-- наполняем 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

Viktor Fedinchuk in dbGeeks
Yaroslav Schekin
Спросите лучше в чате по конкретной СУБД.
думал это не сильно привязано к конкретной бд)
источник

VF

Viktor Fedinchuk in dbGeeks
но я спрошу, спасибо
источник

VK

Vladimir Karamazov in dbGeeks
Viktor Fedinchuk
думал это не сильно привязано к конкретной бд)
Это даже привязано к конкретной версии конкретной СУБД. Поэтому укажите там и версию
источник

EK

Evgeniy Kuvshinov in dbGeeks
судя по uuid_generate_v4 это возможно pgsql, но версию не определить
это именно сильно зависит от бд и версии
в mysql еще от engine :)
источник

VK

Vladimir Karamazov in dbGeeks
Да, если б все так было просто, достаточно было бы запомнить как делать лучше... А так надо смотреть explain и думать
источник

VF

Viktor Fedinchuk in dbGeeks
Evgeniy Kuvshinov
судя по uuid_generate_v4 это возможно pgsql, но версию не определить
это именно сильно зависит от бд и версии
в mysql еще от engine :)
да так и есть, дописал версию, если помогут продублирую ответ и сюда, может кому то будет интересно =)
источник

EK

Evgeniy Kuvshinov in dbGeeks
по поводу массовой вставки
я бы погуглил официальные гиды по pgsql bulk insert (у любой дб есть рекомендации) и вижу юзать COPY :)
источник

EK

Evgeniy Kuvshinov in dbGeeks
источник

EK

Evgeniy Kuvshinov in dbGeeks
это к вопросу возможно ли быстрей? официальный гид приводит способы как делать быстрей только хз на сколько это будет
источник