@pgsql

Страница 730 из 1062
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")

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

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 , будут ли работать индексы, записей в таблице больше миллиона

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
Получается два вариант ? если селективность маленькая то индексы, если большая то фулскан?
Тут надо понять что вы понимаете под «маленькая». В общем случае count(distinct field) / count(*) . Уникальный индекс даст 1 - это лучший результат.

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
может партиционирование? не шардирование
Возможно придется еще разбивать по clientId

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

Lev
26.03.2018
14:43:33
надо прямо на другой сервер или диск помедленнее

планировщик pg отлично понимает constraint про дата старше ... И не лезет, если запрос не будет затрагивать данные

соответственно нужно либо сделать таблицу в tablespace на более медленном hdd, либо смотреть в сторону fdw, если нужен другой сервер.

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

Viktor
26.03.2018
14:52:45
соответственно нужно либо сделать таблицу в tablespace на более медленном hdd, либо смотреть в сторону fdw, если нужен другой сервер.
А если например 1 год храним с разбивкой по партициям на одном сервере, а более года на другом сервере, где другая политика бекапов и репликации, как-то можно от клиента спрятать такую схему?

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
прописать другой сервер через FDW. Тогда он будет для запросов ещё одной таблицей.
Спасибо огромное! Какие-нибудь подводные камни есть с партициями в pgsql?

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
я пропустил батл про мультимастер :)
Где батл?! Не было никакого батла, так, парочка мнений. :P

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, то просто дублируется значение первого поля. Может кто подсказать как в такой ситуации быть?

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

Yaroslav
26.03.2018
16:14:13
Нет, проблема в том, что у полей одинаковые значения, потому что я не пойму как указать какой номер записи из table2 взять.
Какой ещё "номер записи"? Вы можете показать \d таблиц и определение view (или ту его часть, которая уже есть)? А то ничего непонятно...

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
Да, секунду, сейчас пишу псевдокод, потому что это только кусок из большого представления и таблиц.
Во-первых, это MS SQL, а не PostgreSQL (т.е. почему бы не спросить в https://t.me/sqlcom). Во-вторых, лучше бы вы показывали текст вместо screenshot-ов.

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
Спасибо большое.

Во-первых, это MS SQL, а не PostgreSQL (т.е. почему бы не спросить в https://t.me/sqlcom). Во-вторых, лучше бы вы показывали текст вместо screenshot-ов.
Мне кажется, что изучив PostgreSQL разобраться в синтаксисе MS SQL довольно просто. Там все теже DML с нюансами синтаксиса, а SQL ядро-то везде одинаковое.

Yaroslav
26.03.2018
16:49:20
Мне кажется, что изучив PostgreSQL разобраться в синтаксисе MS SQL довольно просто. Там все теже DML с нюансами синтаксиса, а SQL ядро-то везде одинаковое.
Да вся "радость"-то не в синтаксисе. ;) И что такое "ядро SQL", любопытно? Если "базовый/классический" SQL (примерно SQL-92), то, в основном, да.

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’ы

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

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

Google
Anton [Mgn, az09@osm]
27.03.2018
02:09:05
Кортеж - это запись в таблице БД. Она же строка.
Никогда не понимал зачем ROW переводят как «строка», ведь это в первую очередь РЯД. А у новичков в результате возникает путаница со “string”.

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
Кортеж - это запись в таблице БД. Она же строка.
Тоесть если я выполню 'SELECT field_1, field_2, field_3 FROM table_name;' Мне вернётся сколькото кортежей из трех столбцов ?? ТОесть кортэж это конечная выдача?

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

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

Страница 730 из 1062