Вопросы по 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. Оптимизация запросов, реализация, подходы и т.д.

Самый простой язык для работы с PostgreSQL

Здравствуйте!
Я не программист, а так "скриптер-самоучка". Немного пишу на скриптовом языке AHK. Сейчас возникла необходимость получать некоторые данные из базы PostgreSQL. AHK этого делать не умеет.

Подскажите пожалуйста какой язык проще всего выучить, чтобы суметь с его помощью получать информацию из этих БД? Никаких других действий типа создания баз, таблиц, расширения, записи не предвидится.

Приоритеты при выборе расположены вот в таком порядке:
1. Простота языка
2. Наличие документации на русском языке
3. Скорость работы.

Пропадает текстовое значение в ячейке

Господа, доброго времени суток.

Столкнулся с такой неприятной проблемой: создаю в таблице столбец типа text. Инсерчу длинную строку. Строка видна, пока количество символов не пересекает определенного значения. Потом строка пропадает. Всё. Заселектить значение поля не получается. Там пусто.
Но в ячейке есть данные. Их можно достать программно (например, NpgsqlCommand npgSqlCommand = new NpgsqlCommand("SELECT * FROM test_page", npgSqlConnection);). Или через буфер.

В чем проблема?

Заранее спасибо за ответ.

Да, версия ПГ – 9.2.

update значений - РЕШЕНО

Добрый день,
существует таблица working_table со столбцами protein и mass, а также таблица aureo c единственным столбцом protein. Нужно внести значения 1 в столбец mass там, где значения столбца protein в working_table совпадают с значениями protein в aureo.

пробовала
UPDATE working_table
SET mass = 1
WHERE working_table.protein = aureo.protein;

ошибка: таблица aureo отсутствует в предложении FROM

если использовать
UPDATE working_table
SET mass = 1
WHERE working_table.protein = (select aureo.protein from aureo);

ошибка: подзапрос в выражении вернул больше одной строки

Использование алиасов в PostgreSQL

Приветствую!

Помогите разобраться. Имеем запрос следующего вида:

SELECT param, value, domain,
INDEX('my.example.net', domain) AS "level"
FROM table1 AS "table2"
WHERE table2.level>0

Так есть, необходимо сделать выборку по виртуальному столбцу, на что postgres выдаёт следующую ошибку: "ОШИБКА: колонка table2.level не существует. SQL-состояние: 42703".

Это баг или для подобного должен быть иной синтаксис? Ну не везде же писать "index('my.example.net', domain)"…

Периодически падает pgsql

Здравствуйте.

Недавно появилась такая проблема. Пользователи работают с 1с, база на posgtgresql. Внезапно 1с выдает сообщение о том, что база данных повреждена. Снова работать можно только после перезапуска postgresql. Происходит через случайные интервалы времени (15 минут- 1 час). В логах пишет так:

WARNING: archive_mode enabled, yet archive_command is not set
NOTICE: CREATE TABLE will create implicit sequence "tt6_f_1_seq" for serial column "tt6.f_1"
LOG: процесс сервера (PID 5782) was terminated by signal 11: Segmentation fault

SELECT TRUE/FALSE вместо 't'/'f'

Изображение Dxel

Здравствуйте. Интересует, как сделать вывод в boolean типе TRUE/FALSE вместо 't' и 'f' в SELECT полях.
Может какая системная переменная есть, только не в конфиге. При соединении с базой к примеру указать это как?
Или 1/0 чтоб возвращала?

Вообще подцепил MDB2, и он распознаёт TRUE/FALSE в массиве параметров, к примеру:
$sql = 'SELECT * FROM nametable WHERE boolean_field=?';
$MDB2->extension->GetRow($sql, null, array(false));
Отрабатывает правильно (в отличие от DBO рогатого).
Даже без указания типов параметров понимает что там буль.
А при выдаче выдаёт строку 'f' к сожалению.

Видимость объектов БД в схемах

Столкнулся со странным эффектом. Хранимые процедуры и таблицы, к которым они обращаются, оказались в разных схемах. При смене схемы (set search_path) current_schema возвращает правильное значение, но ХП видят таблицы другой схемы. В частности той, к которой была установка set search_path в первый раз после коннекта к БД.
Это так задумано (что видимость таблиц из-под ХП задаётся один раз на весь сеанс), или я что-то делаю не правильно?
Сознательно не варьировал ролями, юзерами чтоб убедиться в этой фиче (баге?).

Как можно увеличить скорость подсчета строк втаблице

Доброй ночи.
Есть таблица на 9500000 строк как можно увеличить скорость подсчета строк в таблице если по одному параметру может выбрать 8999999 строк.

Создание кластера

Добрый день.

Подскажите пожалуйста какими средствами возможно реализовать отказоустойчивый кластер?

[РЕШЕНО] Выборка из таблиц с определённым префиксом. Как ?

Здравствуйте!

Если скажем, буду создавать таблицы с префиксом test_, как мне правильно сделать запрос, для выборки из таблиц имена которых начинаются с '^test_' ?

Я нашёл инфу для получения имён таких таблиц, но как выбрать из них - не соображу (в силу неопытности):

SELECT relname FROM pg_class WHERE relname LIKE 'test_%' AND relkind = 'r';

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

Back to top

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