Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

Как избежать временных таблиц?

Имеется некий запрос.
В нём сначала находятся зависимости
Например ChildID и ParentID.
Сначала мы ищем строки ParentID=NULL и затем выбираем строки где ParentID в результате выборки. Этот запрос используется в основном запросе в IN в WHERE.
Проблема в том, что это должно работать быстро и надёжно, а при большом количестве записей производительность сильно падает. Можно ли избежать временных таблиц в такой конфигурации запроса?

Оператор присваивания (:= или =) ?

Кругом пишут, что оператор присваивания в plpgsql "паскалевский" (:=). Но если использовать "сишний" (=), тто тоже вроде работает как надо. Есть ли разница между єтими операторами (для plpgsql, не для самого SQl)?

То есть, обе строки как бы исполняются одинаково:

start_dt := cunion.get_obalance_date();
и
start_dt = cunion.get_obalance_date();

Как узнать IP-адрес клиента подключенного к серверу Postgres 7.4

Как узнать IP-адрес клиента подключенного к серверу Postgres 7.4

запуск функции по таймеру

Подскажите пожалуйста, как реализовать следующее:
есть функция, написанная на SQL.
Как обеспечить ее запуск каждые N минут?
Так то требуется сделать расширение postgree, которое это делает...

COPY и бинарные данные

мой мозг взрывается с этими бинарными данными

использую след. код
char textbuffer[120];
res = PQexec(conn, "COPY table_name(\"serial_column",\"int_column",\"bytea_column\") FROM STDIN");
if(PQresultStatus(res) == PGRES_COPY_IN)
{
for(int n=0; n < 10; n++) {
sprintf(textbuffer, "1\t%i\t'text'\n", n);
int copydatares = PQputCopyData(conn, textbuffer, strlen(textbuffer));
BOOST_CHECK(copydatares==1);
}
PQputCopyEnd(conn, NULL);
}

первый столбец serial, второй integer, третий - bytea

Выборка дней подряд

Доброго времени суток!
Подскажите, пожалуйста, как можно реализовать следующий запрос:
имеется таблица, в которой фиксируются посещения. Данные о дате и времени заносятся в поле с типом timestamp. Посетитель может приходить несколько раз в день. Нужно сделать выборку, которая покажет, что 1 человек приходил 4 дня подряд. Как задать параметры запроса без указания конкретной даты?

Проверить валидность транзакции.

Собственно вопрос в теме...

1. Делаем start transaction; .
2. делаем insert который вылетает по причине ..... не важно пусть будет FOREIGN KEY
-> Текущая транзакция не валидна....

Как проверить валидность текущей транзакции?

Приложение на C++, QT 4.7. Но это не главное. Просто вообще, есть ли такая возможность и любой вариант достучаться до нее.

Connection refused

Выгружаю данные из PostgreSQL через JDBC. Никак не могу справиться с ошибкой:

org.postgresql.util.PSQLException: Connection refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Хост и порт заданы правильно. В postgres.conf listen_addresses = '*'. В pg_hba.conf всё прописано. Может еще какие-то параметры где-то нужно указать, чтобы соединение по TCP/IP было корректным?

строковые функции

скажите, есть ли функция в postgresql или (plpgsql), которая считает количество определённых символов в строке. Например countLet("test", "t") = 2
Или как её можно реализовать?

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023