powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Опять наболело IGNORE или REPLACE
12 сообщений из 12, страница 1 из 1
Опять наболело IGNORE или REPLACE
    #38750123
Slawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано таблица в которую раз в 3 мин. загужаются данные (=)) около 10 т. строк.
Записи должны быть уникальные.
Количество записей около 90 мл.

Возможно ли загружать данные в таблицу не делая в INSERT select на проверку уникальности.

Как MySQL IGNORE или REPLACE
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750138
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlawkaДано таблица в которую раз в 3 мин. загужаются данные (=)) около 10 т. строк.
Записи должны быть уникальные.
Количество записей около 90 мл.

Возможно ли загружать данные в таблицу не делая в INSERT select на проверку уникальности.

Как MySQL IGNORE или REPLACE

before insert триггер повесьте с нужной логикой и все будет
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750158
Slawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тригер поразумевает select который хотелось бы избежать
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750164
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlawkaКак MySQL IGNORE или REPLACE
ну идите на MySQL уже
вас там заждались

"на MySQL -- это вооон туда --->"
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750400
Slawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwqSlawkaКак MySQL IGNORE или REPLACE
ну идите на MySQL уже
вас там заждались

"на MySQL -- это вооон туда --->"
Нерьвы?
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750406
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slawkaqwwqпропущено...

ну идите на MySQL уже
вас там заждались

"на MySQL -- это вооон туда --->"
Нерьвы?
нет, MySQL-байобы
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38750648
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlawkaТригер поразумевает select который хотелось бы избежать

replace/ignore всеравно внутри себя по реализации делают select
это почти тот же триггер просто скрытый от вас кодом внутри
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38756268
Phoinix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SlawkaТригер поразумевает select который хотелось бы избежать

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE FUNCTION public.insert_ignore (
  "new_row" "public"."mytable"
)
RETURNS BOOLEAN AS
$body$
BEGIN
    INSERT INTO "public"."mytable" VALUES (new_row.*);
    RETURN TRUE;
EXCEPTION
    WHEN unique_violation THEN
        RETURN FALSE;
END;
$body$
LANGUAGE 'plpgsql';
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38756388
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PhoinixSlawkaТригер поразумевает select который хотелось бы избежать

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE FUNCTION public.insert_ignore (
  "new_row" "public"."mytable"
)
RETURNS BOOLEAN AS
$body$
BEGIN
    INSERT INTO "public"."mytable" VALUES (new_row.*);
    RETURN TRUE;
EXCEPTION
    WHEN unique_violation THEN
        RETURN FALSE;
END;
$body$
LANGUAGE 'plpgsql';



это будет сииильно дороже чем select проверка перед insert
(вообще Begin/exception весьма дорогая конструкция в Pg чтобы не стараться ее избегать по мере возможности).
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38757244
Phoinix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim BogukPhoinixпропущено...


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE FUNCTION public.insert_ignore (
  "new_row" "public"."mytable"
)
RETURNS BOOLEAN AS
$body$
BEGIN
    INSERT INTO "public"."mytable" VALUES (new_row.*);
    RETURN TRUE;
EXCEPTION
    WHEN unique_violation THEN
        RETURN FALSE;
END;
$body$
LANGUAGE 'plpgsql';



это будет сииильно дороже чем select проверка перед insert
(вообще Begin/exception весьма дорогая конструкция в Pg чтобы не стараться ее избегать по мере возможности).

Зависит от того, сколько реально предполагается EXCEPTION. Если вероятность нарушения уникальности не большая, то вполне себе.
Begin да, будет несколько тормозить INSERT. Но опять же: 10К строк в 3 минуты - несерьезно.
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38757867
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PhoinixMaxim Bogukпропущено...


это будет сииильно дороже чем select проверка перед insert
(вообще Begin/exception весьма дорогая конструкция в Pg чтобы не стараться ее избегать по мере возможности).

Зависит от того, сколько реально предполагается EXCEPTION. Если вероятность нарушения уникальности не большая, то вполне себе.
Begin да, будет несколько тормозить INSERT. Но опять же: 10К строк в 3 минуты - несерьезно.
что-то я не понял из-за одного дубля ВСЕ записи в эксепшен??? дорого
...
Рейтинг: 0 / 0
Опять наболело IGNORE или REPLACE
    #38758640
Phoinix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan Durakчто-то я не понял из-за одного дубля ВСЕ записи в эксепшен??? дорого

Таки да, не понял. Только дубли в exception.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Опять наболело IGNORE или REPLACE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]