@pgsql

Страница 895 из 1062
Alexey
19.07.2018
08:40:49
Всем привет. Подскажите пожалуйста, как написать в одном скрипте .sql выполнение этих двух операций ? CREATE DATABASE db; CREATE SCHEMA sh; База создается, а схема нет. Знаю что можно использовать \connect sh, но это только в консоли, а мне необходимо в скрипте. Помогите пожалуйста.

Alexey
19.07.2018
08:43:11
В каком "скрипте"? Который будет выполняться psql?
Этот скрипт будет выполнять докер при запуске.

Yaroslav
19.07.2018
08:43:46
Этот скрипт будет выполнять докер при запуске.
А как он их выполняет? С помощью psql, или как-то иначе?

Google
Alexey
19.07.2018
08:46:04
А как он их выполняет? С помощью psql, или как-то иначе?
Внутренней кухни не знаю точно, но предполагаю что-то такое : psql -f thefile.sql targetdatabase А этот скрипт, я уже подкидывают докеру во время старта.

Alexey
19.07.2018
08:47:46
Ну так там \connect тоже должен работать, в таком случае.
Я это понимаю, мне интересно, можно ли как используя sql это сделать, а не через командную строку.

Yaroslav
19.07.2018
08:50:13
Я это понимаю, мне интересно, можно ли как используя sql это сделать, а не через командную строку.
Эээ... что? Причём тут какая-то командная строка? Скрипты-то psql выполняет, правильно? Пример: — test.sql — SELECT pg_backend_pid(); \connect other_database SELECT pg_backend_pid(); — — pgsql -f test.sql -d first_database

Богдан
19.07.2018
09:36:47
elfiki
19.07.2018
09:41:08
Лучше (для производительности) бы вы через UNION ALL сделали, наверное...
а чем это лучше? два запроса с одним условием быстрее чем один с двумя?

или выполнение логических операций?

Yaroslav
19.07.2018
09:43:18
а чем это лучше? два запроса с одним условием быстрее чем один с двумя?
А как "один с двумя" будет использовать индексы (если они есть, конечно)? "OR" вообще, эээ... "не сахар" для оптимизации.

Gennady
19.07.2018
09:49:40
По "OR" тоже будет, но bitmap index scan

Yaroslav
19.07.2018
09:51:02
По "OR" тоже будет, но bitmap index scan
И это может быть намного хуже (от распределений зависит, конечно).

Gennady
19.07.2018
09:52:55
А есть возможность настраивать работу этого bitmap index scan ? Размер битовой карты, например.

Yaroslav
19.07.2018
09:56:47
А есть возможность настраивать работу этого bitmap index scan ? Размер битовой карты, например.
Только косвенно, через work_mem, насколько я помню (регулируется "подробность" карты)... а зачем?

Gennady
19.07.2018
10:01:11
Только косвенно, через work_mem, насколько я помню (регулируется "подробность" карты)... а зачем?
Как-то проверять, какая получилась "подробность" - это реально? Для того, чтобы уменьшить количество чтений данных.

Google
Иван
19.07.2018
10:05:04
Господа, здравствуйте. В теме я новичек, сильно не ругайте. Нужно сделать запрос SELECT * FROM tovs WHERE h1 BETWEEN 20 AND 30 AND h2 BETWEEN 20 AND 30 AND h1 > 40 . По моим минимальным знаниям, это должно работать, но на деле не особо. Можно ли как-то делать выборку из того, что уже было выбрано?

Иван
19.07.2018
10:10:34
Нужно чтобы выбирались и те которые между 20 и 30 и те которые больше 40

Иван
19.07.2018
10:51:57
Уже вспомнил о существовании скобок, вопрос снимается)

alex
19.07.2018
11:45:07
народ, подскажите как изменить порядок сортировки в базе

а то у меня приложение ругается

Yaroslav
19.07.2018
12:02:34
народ, подскажите как изменить порядок сортировки в базе
Путём пересоздания (если я правильно понял вопрос). https://www.postgresql.org/docs/current/static/locale.html

elfiki
19.07.2018
12:04:44
о, раз уж тут про сортировки. freebsd и utf8, сортировка с буквой ё

костыли резко снижают производительность

Fike
19.07.2018
12:17:58
А он не умеет cancel? И, кстати, что такое "свой же", в той же сессии?
он будет висеть до тех пор, пока запрос не закончится, пых не умеет в асинхронность, к сожалению

Vladimir
19.07.2018
12:58:35


elfiki
19.07.2018
13:02:21
ну вон же пишет, что питон ждет что текст будет в UTF-8, а ему подсовывают что-то другое

или это база пишет?

Vladimir
19.07.2018
13:43:13
или это база пишет?
В pg_admin ошибка, наверн. Не даёт создать

Google
Oleg
19.07.2018
13:51:54
это ошибка уровня питона, типа данных str/bytes, кодирования-декодирования. матчасть по этой теме надо изучать. вот к примеру: https://www.youtube.com/watch?v=0sg15V669qM

Алексей
19.07.2018
14:22:07
Добрый день. В поле типа json хранятся данные вида: {"2992000":[2992032,2992033,2992034],"2010000":[2010001,2010005]} Как правильно написать условие where, для выборки всех записей, в которых в массиве ключа 2992000 содержатся значения 2992032 или 2992034 ?

Alexander
19.07.2018
14:33:04
Приведение к jsonb, использовать jsquery?

ко?TEXHIK
19.07.2018
14:33:20
main id, data. json id, key, vals

И искать соответственно select * from main join json on main.id=json.id where json.key=2992000 and (json.value=2992032 or json.value=2992034)

Алексей
19.07.2018
14:44:18
main id, data. json id, key, vals
в этом случае в выборке будет 2 строки, а хотелось бы получить 1 без использования distinct или group by. в mysql можно так сделать where JSON_CONTAINS(json_data, 2992032, $."2992000") в pg не нашел такого

ко?TEXHIK
19.07.2018
14:45:50
Приведение к jsonb, использовать jsquery?
насколько Я знаю, пг не умеет работать с жсон, для него это как обычная строка, но вон выше сообщение смотри, возможно это как раз то что тебе нужно?

Alexander
19.07.2018
14:47:38
еще как неплохо

джсонб + jsquery так вообще прекрасно

Алексей
19.07.2018
14:48:20
тогда можешь заменить джоин подзапросом. А чем тебя смущает дистинкт/групбай?
не будет ли так тратится лишнее время на обработку на большом числе записей ?

Alexander
19.07.2018
14:48:21
при наличии нужных индексов тем более

Yaroslav
19.07.2018
14:51:58
Добрый день. В поле типа json хранятся данные вида: {"2992000":[2992032,2992033,2992034],"2010000":[2010001,2010005]} Как правильно написать условие where, для выборки всех записей, в которых в массиве ключа 2992000 содержатся значения 2992032 или 2992034 ?
Если вам такое нужно, то, моему (нескромному) мнению, у вас неправильно спроектирована база. Вы уверены, что нельзя сделать нормализованную реляционную схему? Так-то можно "лепить" всякие запросы (вот вроде приведённого выше), но чем дальше, тем будет страшнее. :(

Alexander
19.07.2018
14:52:29
это приведение к джсонб) у джскваери синтаксис намного проще и без лишних плясок с бубном, без извлечения данных по ключу и приведения их к нужному виду

Yaroslav
19.07.2018
14:53:47
я заранее незнаю, сколько будет таких полей в каждой записи
Это и называется "ненормализованная модель". А мы ведь и до JSON-а как-то жили, правда? ;)

Google
Gennady
19.07.2018
14:55:23
а какие альтернативы предлагаете, EAV ?

Alexander
19.07.2018
14:55:25
Вам нужно выбрать EN локаль при установке Jira. Проще говоря - локаль Jira должна совпадать с локалью PostgreSQL. Было такое при установке Jira Service Desc.

Yaroslav
19.07.2018
14:56:46
а какие альтернативы предлагаете, EAV ?
Нет, это ещё хуже. :( Я предлагаю решения, основанные на DDL, например.

Admin
ERROR: S client not available

Vladimir
19.07.2018
15:57:37
это ошибка уровня питона, типа данных str/bytes, кодирования-декодирования. матчасть по этой теме надо изучать. вот к примеру: https://www.youtube.com/watch?v=0sg15V669qM
На базе с UTF-8 локалью все норм( получается надо базу пересоздавать под utf-8 ?(( как я понял просто так не поменять локаль?( надо дампить данные и заново раскатывать ?(

Vladimir
19.07.2018
17:19:49
Решили!)) все что надо было прописать кодировку в функции, но только сразу после $$, без отбивки строки)



Сергей
19.07.2018
17:24:53
о боги! чтоб я ослеп

Jim
19.07.2018
17:38:36
о боги! чтоб я ослеп
да норм. если вся логика в базе, то очень удобно

Jim
19.07.2018
17:50:54
хоть и странно выглядит, да

пичаль, что 2.7 питоний там, емнип

Vladimir
19.07.2018
17:53:55
Не понял почему надо ослепнуть.

Misha
19.07.2018
17:55:16
используйте print screen)

Vladimir
19.07.2018
17:56:14
используйте print screen)
Сорян Бывают компы без инета, потому-то так надо И Лучше ослепнуть, чем предлагать перезаливать БД))

Sergey
20.07.2018
07:47:05
Низкий поклон вам, линуксоиды. Не подскажете хороший набор шаблонов+скриптов для мониторинга pgsql в zabbix.
вот еще https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql а разве это не ищется в гугле?

AluV
20.07.2018
08:23:44
Привет всем ! ??? Подскажите, можно ли как то создать FOREIGN KEY (event_type_id) REFERENCES event_types (id); Чтобы он не проверял уникальность event_type_id у таблицы, которая ссылается на event_types

Amir
20.07.2018
08:30:38
Привет всем ! ??? Подскажите, можно ли как то создать FOREIGN KEY (event_type_id) REFERENCES event_types (id); Чтобы он не проверял уникальность event_type_id у таблицы, которая ссылается на event_types
три раза перечитал, пока не осмыслил, у вас FK не причем, скорее всего по event_type_id есть уникальный индекс, из за этого вы ловите ошибку уникальности а так если вы создаете FK то хоть 500 строк будут ссылаться на одну и туже запись event_types, будет рабоать как надо

Google
Alex
20.07.2018
08:39:32
народ, подскажите, для того что бы промежуточная таблица в связи many-to-many стала таблицей связи надо в ней один из внешних ключей объявить primary key?

AluV
20.07.2018
08:42:24
Он ссылается на Id таблицы, он уникален. Все правильно написано

Vladimir
20.07.2018
08:43:29
Он ссылается на Id таблицы, он уникален. Все правильно написано
Подождите, бред какой то) Id точно ключ?) Лучше ошибку скиньте

Amir
20.07.2018
08:46:10
Подождите, бред какой то) Id точно ключ?) Лучше ошибку скиньте
я тоже сразу стал грешить на id таблицы на которую FK но в это не верилось и предположил вариант что в текущей таблице не дает ссослаться на один ID нескольким записям.

Amir
20.07.2018
08:48:09
Sasha
20.07.2018
10:38:32
Всем привет. У меня такая задача - сделать web API, для получения файлов до 10 гиг. И делать по файлу поиск. Напримел сколько раз встречается указанное слово в файле. Использую Sinatra (для веб апи на ruby). (и Redis+Sidekiq) Вопрос: - Какие лучшие практики для решения таких задач? - Как лучше делать поиск по большим файлам? - Как сохранять большие файлы?

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