Всем доброго времени!
Надеюсь, название темы привлекло внимание экспертов 
С Постгресом знаком давно, но только сейчас наткнулся на "интересное" поведение.
Есть большая таблица, точнее, таблица-мастер и таблицы-потомки. Партицирование идет по полю, хранящему дату, на это же поле навешан индекс. Хотя, может партицирование здесь и не при чем.
Этот запрос отрабатывает влет:
SELECT * FROM master_table WHERE mydate >= 'вчера'
SELECT * FROM master_table WHERE mydate >= 'вчера' AND mydate <= 'сегодня'
Добрый день.
Кто-нибудь использовал эти индексы?
Делаю запрос:
CREATE INDEX pt_index ON marker USING spgist(point); ERROR: DATA type geometry has no DEFAULT operator class FOR access method "spgist" HINT: You must specify an operator class FOR the INDEX OR define a DEFAULT operator class FOR the DATA type.
При явном указании operator class идет такая ошибка:
CREATE INDEX pt_index ON marker USING spgist(point quad_point_ops); ERROR: operator class "quad_point_ops" does NOT accept DATA type geometry SQL-состояние: 42804
Да, я совсем новичок, с базами конкретно не работал, опыта 0
Есть необходимость сделать бекап одной из баз.
Подключился к серверу
sudo -u postgres psql
Посмотрел список баз
select * from pg_database;
Выбрал нужную, по мануалам пробовал разные варианты, возьмем самый простой, без дополнительных параметров
pg_dump имя_БД > файл_дампа
и ничего, строка в консоли просто перескакивает и ждет новой команды.
Добрый день.
Меня интересует вопрос кластеризации геопространственных данных. Конкретно точек.
И у меня в голове сидит мысль по этому поводу.
В PostGIS существуют пространсвенные индексы, которые представляют собой R-деревья.
Когда с помощью psql перехожу к управлению базой данных "db" следующая строка принимает такой вид:
db=# (как я читал, это обозначает права суперюзера)
дальше ввожу команды.
Но если ввел команду неправильно и нажал Enter, ничего не выполняется, а следующая строка принимает вид:
db-#
Дальше ввожу команду правильно, но выскакивает ошибка:
ERROR: syntax error at or near "db"
LINE 1: db
^
Потом всё норм и дальше идет опять нормальная строка:
db=#
Что это за пакость и как с ней бороться? Как использовать -#?
Спасибо за ответы!
Как сделать,чтобы выводилась не 1 строка,а вся таблица?
<?php $host = "***"; \\имя хоста $user = "***"; \\логин $pass = "***"; \\пасс $db = "***"; \\имя дб $con = pg_connect("host=$host dbname=$db user=$user password=$pass") OR die ("Could not connect to server\n"); $query = "SELECT tag FROM public.id ORDER BY \"Time\" DESC LIMIT 100 ;"; //свой запрос $rs = pg_query($con, $query) OR die("Cannot execute query: $query\n"); while ($row = pg_fetch_row($rs)) { $Arr[]=$row[0]; } pg_close($con); echo json_encode($Arr); ?>
Стоит PostgreSQL 8.4,при попытке создать триггер выдает следующую ошибку!На PostgreSQL 9.0 все работает,но надо на PostgreSQL 8.4 чтоб работало!Помогите,пожалуйста!Спасибо
CREATE FUNCTION ЗаписДати() RETURNS TRIGGER AS $$DECLARE rec record; BEGIN /*Начало основного программного блока функции*/ SELECT INTO rec * FROM Оплата WHERE дата_приїзду>дата_відїзду; IF found THEN RAISE EXCEPTION 'Введите правильные даты'; else RETURN new; end IF; END;$$ LANGUAGE 'plpgsql';
CREATE TRIGGER ЗаписДати /*Создать триггер*/
У меня есть БД на Postgre (сервер на Windows). В конфигурациях внесла изменения - shared_buffers = 1GB, temp_buffers = 256MB, work_mem = 512MB. Индексы есть на всех часто используемых колонках. Однако выполнение запросов все равно происходит медленно.
Пример запроса -
select distinct us_category_id as cat, count(h_user_id) as res from web_hits
inner join users on h_user_id = us_id
where (h_datetime)::date = ('2015-06-26')::date and us_category_id != ''
group by us_category_id
Explain analyse:
Столкнулся с необходимостью ручного переноса данных из одной базы данных Постгре в другую базу, тоже Постгре и даже работающую на этом же сервере. Рекомендация производителя ПО, так сказать.
Пытаюсь это дело автоматизировать. Выглядит оно примерно так:
1.Читаем строки из базы gps таблица object1:
SELECT external_id,coord_y,coord_x FROM object1 WHERE coord_x>0 AND coord_y>0 AND device_id=0 ORDER BY external_id