
Nikita
26.03.2018
11:48:48
DECLARE
years VARCHAR[] := ARRAY['2018','2017','2016'];
months VARCHAR[] := ARRAY['01','02','03','04','05','06','07','08','09','10','11','12'];
outname text;
подскажите, пожалуйста, почему ругается на outname? ОШИБКА: ошибка синтаксиса (примерное положение: "outname")

Yaroslav
26.03.2018
11:51:09

Google

Pavel
26.03.2018
11:52:12
может я не понял и чека хватит
DECLARE
years VARCHAR[] := ARRAY['2018','2017','2016'];
months VARCHAR[] := ARRAY['01','02','03','04','05','06','07','08','09','10','11','12'];
outname text;
не ругается

Нурзат
26.03.2018
12:15:12
Добрый день! У меня есть таблица, тип первичного ключа(id) serial. id последней записи 58020. При добавлении записей в эту таблицу,не указывая в insert поле id, они записываются начиная с id=1000000. Так и должно быть или что то не так? Ползуюсь pgAdmin 3.

Dmitry
26.03.2018
12:16:16

Mike Chuguniy
26.03.2018
12:17:33
Ну и не поменять, а посмотреть: \d <sequence_name>
А то наменяете...

Нурзат
26.03.2018
12:28:04

Yaroslav
26.03.2018
12:32:49
А зачем вам вообще что-то менять? И, как уже сказали, sequence посмотрите (TAG_Name_id_seq).

Нурзат
26.03.2018
12:35:15
Разобрался, спасибо)

Pavel
26.03.2018
12:56:30
у меня есть таблица Т у нее три колонки a, b и c, и индeксы на a , b , если сделать запрос на выборку по трём колонка a,b и c , будут ли работать индексы, записей в таблице больше миллиона

Dmitriy
26.03.2018
13:03:06

Google

Pavel
26.03.2018
13:17:54

Nikita
26.03.2018
13:24:32
Добрый день! Может кто подсказать: написал UDF которая таблицу возвращает, указал что она PARALLEL SAFE, но она всё-равно кушает только один поток.

Dmitriy
26.03.2018
13:27:13

Viktor
26.03.2018
14:34:05
Каким механизмом в postgresql 10.3 оптимальнее разносить данные по шардам на активные и архивные?
Есть колонка с датой, данные более чем за 3 месяца необходимо переносить на более медленные hdd

Lev
26.03.2018
14:36:13
может партиционирование? не шардирование

Viktor
26.03.2018
14:37:40

Lev
26.03.2018
14:43:33
надо прямо на другой сервер или диск помедленнее
планировщик pg отлично понимает constraint про дата старше ... И не лезет, если запрос не будет затрагивать данные
соответственно нужно либо сделать таблицу в tablespace на более медленном hdd, либо смотреть в сторону fdw, если нужен другой сервер.

Viktor
26.03.2018
14:49:45

Lev
26.03.2018
14:51:20
мы перелистываем таблицей. То есть новые данные пишем в новую таблицу, а старую закрываем необходимыми констреинтами. Тут можно написать и миграцию в tablespace по идее

Viktor
26.03.2018
14:52:45

Lev
26.03.2018
14:54:17
прописать другой сервер через FDW. Тогда он будет для запросов ещё одной таблицей.
я правда не уверен, как новый механизм партиций будет с ним дружить, но какое-то обсуждение в сети идёт
https://www.postgresql.org/docs/10/static/ddl-partitioning.html здесь есть пример с партициями нв разных дисках

Viktor
26.03.2018
14:57:47

Mikhail
26.03.2018
15:03:03
ох, досада
я пропустил батл про мультимастер :)

Google

Mikhail
26.03.2018
15:03:19
воброс по dblink
он ведь только select'ы позволяет делать?

Sergey
26.03.2018
15:04:17
Судя по тому что его рекомендуют для эмуляции автономных транзакцй - не только select'ы

Mike Chuguniy
26.03.2018
15:04:34

Mikhail
26.03.2018
15:04:39
прост не нашёл в доках про insert/update
меня интересует dblink на уровне самого ПГ, а не через C API

Mike Chuguniy
26.03.2018
15:05:51
воброс по dblink
Может имеет смысл смотреть уже на postgres_fdw? Оно как-то по-прозрачнее и логичнее для приложения.

Mikhail
26.03.2018
15:06:09
эмм... не знаю такого
гляну

Mike Chuguniy
26.03.2018
15:07:14
прост не нашёл в доках про insert/update
Ну вы, блин, даёте! Открываем доки: https://www.postgresql.org/docs/9.2/static/contrib-dblink-exec.html
SELECT dblink_exec('insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
dblink_exec

Mikhail
26.03.2018
15:11:17
ам
через exec.... однако

Mike Chuguniy
26.03.2018
15:12:49
Так весь дблинк - он из себя скопище всяких ф-ий представляет. Я и говорю, что *_fdw - это более наглядная, прозрачная и логичная возможность.
https://www.postgresql.org/docs/10/static/postgres-fdw.html

Mikhail
26.03.2018
15:13:52
угу

Alexey
26.03.2018
16:03:44
Всем привет.
Есть таблица table1, в которой два поля (Name1 и Name2) содержат внешние ключи на таблицу table2. Как назвать эти поля в представлении viewTable1, чтобы они отличались? То есть если я укажу table2.Name сделаю связь таблиц через join, то просто дублируется значение первого поля.
Может кто подсказать как в такой ситуации быть?

Yaroslav
26.03.2018
16:10:17

Alexey
26.03.2018
16:11:47
Нет, проблема в том, что у полей одинаковые значения, потому что я не пойму как указать какой номер записи из table2 взять.

Yaroslav
26.03.2018
16:14:13

Alexey
26.03.2018
16:15:23
Да, секунду, сейчас пишу псевдокод, потому что это только кусок из большого представления и таблиц.

Google

Alexey
26.03.2018
16:23:52
Мне нужно чтобы был Петя, Вова.
Выразить поле через AS и потом сделать ограничение в WHERE нельзя.
Слишком очевидно или непонятно объяснил?)

Alexandr
26.03.2018
16:37:57
очевидно

Yaroslav
26.03.2018
16:39:18

Alexandr
26.03.2018
16:40:22
select t2.name as name1, t3.name as name2
from table1 t1
join table2 t2 on t1.Name1ID=t2.id
join table2 t3 on t1.Name2ID=t3.id
where t1.Number=420
он же честно написал, что напишет "псевдокод", чего вы хотите)

Alexey
26.03.2018
16:42:11
Спасибо большое.

Yaroslav
26.03.2018
16:49:20

Alexey
26.03.2018
16:52:41
На каком сайте обычно топовые программисты пишут код, чтобы потом его ссылкой кинуть?)

Аггей
26.03.2018
16:53:41
Pastebin? ))

Alexey
26.03.2018
16:54:08
О, да, этот встречал пару раз.

Vladimir
26.03.2018
16:54:09
https://gist.github.com/
Главное использовать пробелы, а не tab’ы

Alexey
26.03.2018
16:55:23
Спасибо.

Igor
27.03.2018
00:29:31
Ребята всем привет! ))
Я только начал учить БД и сейчас милион вопросов, но более всег непонятно, что такое кортеж?

Nikolay
27.03.2018
00:50:07
Привет. Смотря в каком контексте. В теории — строка логическая в отношении (отношение=таблица). В постгресе кортеж (tuple) — физический экземпляр строки, у одной строки из может быть несколько, если она обновлялась (старые, новая версия — разные кортежи физически для одной «логической» строки; в каждой сессии видна только одна версия / один кортеж).

Google

Ilia
27.03.2018
01:57:41

Anton [Mgn, az09@osm]
27.03.2018
02:09:05

Voldemar
27.03.2018
03:17:15
всем привет, пытаюсь настроить потоковую репликацию, master - wal_level = replica
max_wal_senders = 4
max_replication_slots = 4
создал слот репликации, после создания базовой копии и запуска слэйва, на слэйве в логе - получен запрос на вежливое выключение
куда копнуть?
на слэйве - hot_standby = on
hot_standby_feedback = on
в recovery.conf добавлена строка primary_slot_name = 'replica_slot'

Igor
27.03.2018
03:35:46

Ilia
27.03.2018
03:37:48

Igor
27.03.2018
03:39:15
Ок спасибо)
Всё оказалось проще чем я думал)

Ilia
27.03.2018
03:46:01
Ещё будет проще, если ты не будешь говорить кортеж, а будешь - запись...