Size: a a a

pgsql – PostgreSQL

2020 July 07

_

___ in pgsql – PostgreSQL
ну да
источник

_

___ in pgsql – PostgreSQL
я не это имел ввиду,
SELECT * FROM table2
ничего не даёт
источник

_

___ in pgsql – PostgreSQL
изначально table2 пустая кстати говоря, но и заполнение пустыми строками не помогло
источник

SB

S B in pgsql – PostgreSQL
сравнение чего либо с null вернёт null, то есть равенство не выполнится
источник

_

___ in pgsql – PostgreSQL
а, вот оно что, спасибо
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Сергей Казаков
привет. Можно как-то в insert on conflict обновлять поле updated_at, только если нужное поле изменилось? Не хочу, чтобы updated_at обновлялось, когда вставляется то же самое значение
А зачем Вы вообще тогда обновляете эти записи (почему их не исключить в WHERE)? Или там есть и другие обновляемые поля?
источник

СК

Сергей Казаков... in pgsql – PostgreSQL
Yaroslav Schekin
А зачем Вы вообще тогда обновляете эти записи (почему их не исключить в WHERE)? Или там есть и другие обновляемые поля?
от партнера приходит массив данных по крону, которые нужно сохранить без дублей. И чтобы не проверять дубли, вставляю при помощи on conflict, навесив unique на поле number. В do update set обновляю lat, lon и updated_at. Но хотелось бы, если координаты не изменились, то updated_at не обновлять
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Сергей Казаков
от партнера приходит массив данных по крону, которые нужно сохранить без дублей. И чтобы не проверять дубли, вставляю при помощи on conflict, навесив unique на поле number. В do update set обновляю lat, lon и updated_at. Но хотелось бы, если координаты не изменились, то updated_at не обновлять
Как-то так, в смысле (я особо не тестировал)?
CREATE TABLE a_table (
number int PRIMARY KEY,
lat real NOT NULL,
lon real NOT NULL,
updated_at timestamptz
);

INSERT INTO a_table(number, lat, lon, updated_at)
VALUES (1, 2.0, 3.0, '2020-07-07 12:00:00+00');

INSERT INTO a_table(number, lat, lon, updated_at)
VALUES (1, 4.0, 5.0, now())
   ON CONFLICT (number)
   DO UPDATE SET lat = EXCLUDED.lat, lon = EXCLUDED.lon, updated_at = now()
WHERE a_table.lat <> EXCLUDED.lat OR a_table.lon <> EXCLUDED.lon;
источник

СК

Сергей Казаков... in pgsql – PostgreSQL
Yaroslav Schekin
Как-то так, в смысле (я особо не тестировал)?
CREATE TABLE a_table (
number int PRIMARY KEY,
lat real NOT NULL,
lon real NOT NULL,
updated_at timestamptz
);

INSERT INTO a_table(number, lat, lon, updated_at)
VALUES (1, 2.0, 3.0, '2020-07-07 12:00:00+00');

INSERT INTO a_table(number, lat, lon, updated_at)
VALUES (1, 4.0, 5.0, now())
   ON CONFLICT (number)
   DO UPDATE SET lat = EXCLUDED.lat, lon = EXCLUDED.lon, updated_at = now()
WHERE a_table.lat <> EXCLUDED.lat OR a_table.lon <> EXCLUDED.lon;
спасибо. Не знал, что EXCLUDED можно еще и в WHERE использовать
источник

АХ

Александр Хакимов... in pgsql – PostgreSQL
Ребят, не могу понять где я и что пропустил
источник

SA

Saimon Arzin in pgsql – PostgreSQL
Всем привет. Ребят, подскажи, если транзакция подвисла pg ее автоматически откатит через какой-то промежуток времени или нужно самому откатывать?
источник

АХ

Александр Хакимов... in pgsql – PostgreSQL
https://paste.ofcode.org/aEQpCqCSj4qpRHcfXNxB3H
[42601] ОШИБКА: ошибка синтаксиса (примерное положение: ";")
источник

DK

Den KP in pgsql – PostgreSQL
Можно ли в эту команду добавить очистку содержимого БД до рестора?
источник

DK

Den KP in pgsql – PostgreSQL
Вот команда - zcat db.dump.gz | psql db -U dba
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Saimon Arzin
Всем привет. Ребят, подскажи, если транзакция подвисла pg ее автоматически откатит через какой-то промежуток времени или нужно самому откатывать?
Транзакции не "подвисают". ;) Т.е. конкретная причина медленного выполнения всегда есть.
По умолчанию PostgreSQL ничего не откатывает сам. Но для многих конкретных причин можно настроить timeouts.
источник

SA

Saimon Arzin in pgsql – PostgreSQL
Yaroslav Schekin
Транзакции не "подвисают". ;) Т.е. конкретная причина медленного выполнения всегда есть.
По умолчанию PostgreSQL ничего не откатывает сам. Но для многих конкретных причин можно настроить timeouts.
то есть если я с бека открываю транзакцию и у меня вдруг случился взрыв, то через timeout он откатиться, верно?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Александр Хакимов
https://paste.ofcode.org/aEQpCqCSj4qpRHcfXNxB3H
[42601] ОШИБКА: ошибка синтаксиса (примерное положение: ";")
"BEGIN;" (7 строка, ";" не должно быть).
источник

M

M in pgsql – PostgreSQL
Привет!
Я создаю юзера и базу для пользователя. Как мне ограничить этому новому пользователю доступ к другим базам на сервере?
источник

GS

Grigory Smolkin in pgsql – PostgreSQL
M
Привет!
Я создаю юзера и базу для пользователя. Как мне ограничить этому новому пользователю доступ к другим базам на сервере?
pg_hba
источник

АО

Александр Орловский... in pgsql – PostgreSQL
всем привет ребят, помогите с задачкой. направьте хотя бы куда копать. есть три таблицы

meetings (мероприятия):
______________________________________________________
id   | start_time  | finish_time | date       | place_id|
1        12:00            13:00              27.07.20              1
2        14:00            16:00              27.07.20              1
3        12:00            17:00              27.07.20              2
—————————————————————————

places (залы где будут проходить мероприятия):
_________________________________________
id   | name
1        Красный зал
2        Синий зал
———————————————————

places_schedules (расписание работы залов):
________________________________________________
id   | start_time        | finish_time   |   place_id
1        10:00                  20:00                       1
2        10:00                  20:00                       2
——————————————————————

нужно составить запрос который бы возвращал в каком то виде промежутки , когда залы свободны. то в результирующей выборке должна бвть инфа, где для каждого place и date в колонках start_time и finish_time время когда залы свободны от меропритий и доступны для брони

place_id     date                start_time    finish_time
   1             27.07.20         10:00               12:00
   1             27.07.20         13:00               14:00
   1             27.07.20         16:00               20:00
   2             27.07.20         10:00               12:00
   2             27.07.20         17:00               20:00
источник