Size: a a a

pgsql – PostgreSQL

2020 December 27

Z=

Zarif gizatullin = n... in pgsql – PostgreSQL
Igor' Ember
Ну представьте что у вас есть сущность "обезьянка". У неё есть имя, отчество, возраст и тп.
Но вам выдали не одну обезьяну, а сразу целый массив. И нужно теперь их одним запросом перегнать в таблицу
форичем на уровне самой бд можно это сделать
источник

2_

2flower _ in pgsql – PostgreSQL
Zarif gizatullin = new Zarif();
форичем на уровне самой бд можно это сделать
Это всегда ужас и медленно, всегда лучше сделать на скл то ,что можно сделать на скл
источник

Z=

Zarif gizatullin = n... in pgsql – PostgreSQL
2flower _
Это всегда ужас и медленно, всегда лучше сделать на скл то ,что можно сделать на скл
соглашусь просто как вариант предложил)
источник

Z=

Zarif gizatullin = n... in pgsql – PostgreSQL
елси это разовая акция то соменваюсь что скрипт будет отрабатывать несколько часов)
источник

Z=

Zarif gizatullin = n... in pgsql – PostgreSQL
10к записей форичем у меня добавились меньше чем за секунду )
источник

2_

2flower _ in pgsql – PostgreSQL
Zarif gizatullin = new Zarif();
10к записей форичем у меня добавились меньше чем за секунду )
Бенчмарки такие бенчмарки, тут все очень сложно.
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Коллеги, доброго времени и с наступающим всех!

Подскажите пожалуйста, у меня есть функция, которая собирает JSON из нескольких таблиц:
json_build_object('id', t1.id, 'title', t1.title, 't2', t2, 't3', t3')

Всё хорошо, кроме того, что мне приходится перечислять все поля из первой таблицы вручную.

Можно ли как-то развернуть все поля/значения первой таблицы в данном конкретном случае? Возможно есть какие-то функции готовые для этого?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Evgeniy Wolf
Коллеги, доброго времени и с наступающим всех!

Подскажите пожалуйста, у меня есть функция, которая собирает JSON из нескольких таблиц:
json_build_object('id', t1.id, 'title', t1.title, 't2', t2, 't3', t3')

Всё хорошо, кроме того, что мне приходится перечислять все поля из первой таблицы вручную.

Можно ли как-то развернуть все поля/значения первой таблицы в данном конкретном случае? Возможно есть какие-то функции готовые для этого?
row_to_json() ?
источник

IE

Igor' Ember in pgsql – PostgreSQL
2flower _
insert ... into ... values(...),(...).….
Это точно не подойдёт, я же не знаю заранее количество
источник

2_

2flower _ in pgsql – PostgreSQL
Igor' Ember
Это точно не подойдёт, я же не знаю заранее количество
Вы для начала по человечески задачу опишите, а потом уже можно говорить что подойдёт, а что нет
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Victor Yegorov
row_to_json() ?
Не совсем понимаю куда её воткнуть
источник

К

Кайши in pgsql – PostgreSQL
#Вакансия  В веб-студию  требуются программисты
Обязательно: TypeScript с платформой NodeJS, работа с современными СУБД (Postgres, Mysql)
Желательно, но на первое время опционально: Понимание принципов SOLID, написание автоматических тестов используя jest, умение работать с Docker / Kubernetes (Есть возможность обучения)

Предоставить примеры работ, резюме, отзывы

Зп в месяц от 25к до н.с Рублей
(Зависит от количества проектов и потраченного на их реализацию времени)
Работа удалённая. Занятость  проектная.

Задача реализовывать чат-ботов в телеграмме.
источник

Ð

Ð in pgsql – PostgreSQL
ох как же люди любят все усложнять...
источник

s

sexst in pgsql – PostgreSQL
Victor Yegorov
чтобы начать изменения ( UPDATE ), к записи нужно получить доступ, если есть открытая транзакция которая уже держит эту запись — мы ждём.
после, когда транзакция закончится и нас пустят — мы сами берём лок делаем нужные проверки. даже если поле не уникально — порядок действий будет такой.
в случае с уникальностью мы ещё будем ограничены и возможными новыми значениями.
за уникальность индексы отвечают, для которых UPDATE или INSERT одинаковы — необходимо добавить новый ключ в индекс (и удалить старый для UPDATE, вероятно это “откладывается”, я не курил эту часть кода)
По идее же всё зависит от выбранного уровня изоляции, нет?
У нас же версионность данных, новую строку в индекс, пусть даже нарушающую уникальность, можно "положить", просто она в какой-то из моментов должна будет пройти проверку на свою уникальность и выдать ошибку при нарушении. А момент проверки от уровня изоляции должен зависеть.

При read uncommitted при попытке продублировать уникальное поле, изменённое другой (ещё не завершенной) транзакцией, у нас упадёт проверка уникальности прямо в момент операции ибо уже будет видна запись другой транзакции. При read commited выдаст ошибку позже. При serializable - понятно.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
sexst
По идее же всё зависит от выбранного уровня изоляции, нет?
У нас же версионность данных, новую строку в индекс, пусть даже нарушающую уникальность, можно "положить", просто она в какой-то из моментов должна будет пройти проверку на свою уникальность и выдать ошибку при нарушении. А момент проверки от уровня изоляции должен зависеть.

При read uncommitted при попытке продублировать уникальное поле, изменённое другой (ещё не завершенной) транзакцией, у нас упадёт проверка уникальности прямо в момент операции ибо уже будет видна запись другой транзакции. При read commited выдаст ошибку позже. При serializable - понятно.
уровень изоляции определяет какие записи увидит запрос. но когда, так или иначе, мы нашли запись, мы должны её заблокировать, после чего перепроверить её видимость в том числе ( транзакция, что мы ждали, могла поменять запись ).
источник

R

Rustam in pgsql – PostgreSQL
Добрый вечер, сделал триггер на условия вставки и удаление, все работает, но вот не задача не могу понять, если после удаления обратно добавить запись с той же связью, то почему то триггер на insert не срабатывает

drop function if exists trigger_foto_redaktor_upin();
CREATE OR REPLACE FUNCTION trigger_foto_redaktor_upin()
RETURNS trigger
LANGUAGE plpgsql
AS $function2$
begin
   if tg_op = 'DELETE' then
   UPDATE ksapp_shooting_do SET status_id = 1 WHERE id = old.id;
     return old;
   else
     UPDATE ksapp_shooting_do SET status_id = 2 WHERE id = new.id;
     return new;
   end if;
end; $function2$
;
drop trigger if exists trigger_foto_redaktor_upin on ksapp_foto_redaktor;
create trigger trigger_foto_redaktor_upin after
insert or delete
on ksapp_foto_redaktor
for each row
execute function trigger_foto_redaktor_upin()
;

я делал и отдельно и один общий триггер все также

на новые записи в таблице триггер работает

но это же не update это удаление и добавление, немного не понимаю почему так ... не подскажите может где то ошибся ?
источник

R

Rustam in pgsql – PostgreSQL
Rustam
Добрый вечер, сделал триггер на условия вставки и удаление, все работает, но вот не задача не могу понять, если после удаления обратно добавить запись с той же связью, то почему то триггер на insert не срабатывает

drop function if exists trigger_foto_redaktor_upin();
CREATE OR REPLACE FUNCTION trigger_foto_redaktor_upin()
RETURNS trigger
LANGUAGE plpgsql
AS $function2$
begin
   if tg_op = 'DELETE' then
   UPDATE ksapp_shooting_do SET status_id = 1 WHERE id = old.id;
     return old;
   else
     UPDATE ksapp_shooting_do SET status_id = 2 WHERE id = new.id;
     return new;
   end if;
end; $function2$
;
drop trigger if exists trigger_foto_redaktor_upin on ksapp_foto_redaktor;
create trigger trigger_foto_redaktor_upin after
insert or delete
on ksapp_foto_redaktor
for each row
execute function trigger_foto_redaktor_upin()
;

я делал и отдельно и один общий триггер все также

на новые записи в таблице триггер работает

но это же не update это удаление и добавление, немного не понимаю почему так ... не подскажите может где то ошибся ?
сори братцы к вечеру немного торможу, нашел проблему все работает теперь!
источник
2020 December 28

cm

chess master in pgsql – PostgreSQL
Привет! может кто подскажет в чем дело. Есть записи в таблице, хочу обновить конкретную строку через метод update, но ничего не происходит. При этом, если я указываю другой id, то все записывается.
источник

cm

chess master in pgsql – PostgreSQL
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
chess master
Привет! может кто подскажет в чем дело. Есть записи в таблице, хочу обновить конкретную строку через метод update, но ничего не происходит. При этом, если я указываю другой id, то все записывается.
то есть вы прямо команду прописываете? Если так, то покажите что было, команду и что стало.
источник