Size: a a a

pgsql – PostgreSQL

2020 July 07

YS

Yaroslav Schekin in pgsql – PostgreSQL
Murena
Подскажите плиз по архитектуре как лучше работать с таблицей где хранятся все транзакции по балансу пользователя, а именно если идет операция списание баланса со счета юзера - то лучше создавать транзакция с минусовым числом - или лучше чтоб число всегда было без знака минуса но добавить тип транзакции или зачисление или списание ?
С минусом, IMHO — считать легче и т.д.
источник

M

Murena in pgsql – PostgreSQL
Понял, спасибо !
источник

P

Petr in pgsql – PostgreSQL
Приветствую! Есть задача - блокировать вставку в таблицу значений если они уже там есть и обновлять их если есть изменения.
источник

P

Petr in pgsql – PostgreSQL
Я набросал триггер - может кто еще чего посоветует?
источник

P

Petr in pgsql – PostgreSQL
CREATE TRIGGER doc_insert
BEFORE INSERT ON doc
FOR EACH ROW EXECUTE PROCEDURE doc_insert_proc();

CREATE OR REPLACE FUNCTION doc_insert_proc()
 RETURNS trigger AS
$BODY$
BEGIN
   IF   new.id IN (SELECT id FROM doc WHERE new.id = id) AND
   new.value NOT IN (SELECT value FROM doc WHERE new.id = id)
 THEN
   UPDATE doc SET value = NEW.value WHERE id = new.id;
   RETURN NULL;
 ELSE
   RETURN NEW;
 END IF;
END;
$BODY$ LANGUAGE plpgsql;
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Petr
Я набросал триггер - может кто еще чего посоветует?
Посоветую задачу яснее описать. ;) Хоть \d таблицы покажите — непонятно, какие там ключи и т.п.
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
я бы использовал уникальный индекс и upsert
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Владимир Яворский
я бы использовал уникальный индекс и upsert
Ну а триггер выше может делать вообще не upsert, а что-то странное (зависит от схемы), то-то и оно.
источник

P

Petr in pgsql – PostgreSQL
Yaroslav Schekin
Посоветую задачу яснее описать. ;) Хоть \d таблицы покажите — непонятно, какие там ключи и т.п.
Табличка простая CREATE TABLE public.doc
(
   id integer,
   value text
)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Petr
Табличка простая CREATE TABLE public.doc
(
   id integer,
   value text
)
Без PK, что ли? "Замечательно". Тут дальше и смотреть смысла нет (какова бы ни была задача), IMNSHO.
источник

P

Petr in pgsql – PostgreSQL
Владимир Яворский
я бы использовал уникальный индекс и upsert
меня смущает что при ON CONFLICT сработает update всей строки вне зависимости одинаковые записи или нет
источник

M

M in pgsql – PostgreSQL
Sergey Shevchenko
Всем привет. Кто нибудь сталкивался с такой реализацией что бы авторизация пользователей была не на уровне приложения а на уровне субд

Проще говоря под каждого зарегистрированного на сайте пользователя, создавать своего пользователя в субд

Понимаю что такой вариант - вообще не вариант, но ИБ говорят что по другому нельзя(можно если на уровне ОС создавать этих пользователей)

БД - постгрес ентерпрайз

Подскажите есть ли максимальное создаваемое количество пользователей в посгре?
И какие могут быть минусы данного подхода?

Всем заранее огромное спасибо!
Встречал подобное работая на железной дороге, где на каждую ШЧ\ПЧ делали отдельных юзеров в БД
источник

P

Petr in pgsql – PostgreSQL
Yaroslav Schekin
Без PK, что ли? "Замечательно". Тут дальше и смотреть смысла нет (какова бы ни была задача), IMNSHO.
а что вас смущает? для теста зачем огород городить?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Petr
а что вас смущает? для теста зачем огород городить?
Да, давайте начнём с 2+2=3, почему нет. ;)
Смущает то, что при таком определении вообще непонятно, что должен делать триггер и правильно ли он работает (сейчас он позволяет вставлять неограниченное количество полных дубликатов, например).
источник

P

Petr in pgsql – PostgreSQL
Yaroslav Schekin
Да, давайте начнём с 2+2=3, почему нет. ;)
Смущает то, что при таком определении вообще непонятно, что должен делать триггер и правильно ли он работает (сейчас он позволяет вставлять неограниченное количество полных дубликатов, например).
да... мой косяк - поспешил, сделал еще ветвление...
источник
2020 July 08

DK

Denis Konarev in pgsql – PostgreSQL
Всем привет! Подскажите, кто на практике работал с pg_repack?  Из описания заявлена возможность переноса без блокировок таблиц и индексов.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Denis Konarev
Всем привет! Подскажите, кто на практике работал с pg_repack?  Из описания заявлена возможность переноса без блокировок таблиц и индексов.
я работал. там без долгих блокировок. но эксклюзивные нужны для подмены таблиц. из коробки он ждёт таймаут и потом снимает мешающие сессии (если прав хватит)
источник

DK

Denis Konarev in pgsql – PostgreSQL
Victor Yegorov
я работал. там без долгих блокировок. но эксклюзивные нужны для подмены таблиц. из коробки он ждёт таймаут и потом снимает мешающие сессии (если прав хватит)
а если выполнять перенос весьма большой таблицы в другой tabelspace. То данное решение подойдёт, чтобы это выполнить без простоя ?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Denis Konarev
а если выполнять перенос весьма большой таблицы в другой tabelspace. То данное решение подойдёт, чтобы это выполнить без простоя ?
да, очень удобно, постоянно таскаем партиции в архивный tablespace
источник

DK

Denis Konarev in pgsql – PostgreSQL
Victor Yegorov
да, очень удобно, постоянно таскаем партиции в архивный tablespace
понял,спасибо!
источник