Size: a a a

pgsql – PostgreSQL

2021 January 28

VY

Victor Yegorov in pgsql – PostgreSQL
склейте новый SQL-запрос виде строки, потом скопипастите вывод в клиент и запустите
источник

AI

Artyom Ivanov in pgsql – PostgreSQL
Victor Yegorov
склейте новый SQL-запрос виде строки, потом скопипастите вывод в клиент и запустите
понял, спасибо, попробую
источник

NR

Nikolaj Rudakov in pgsql – PostgreSQL
спасибо
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
А разве ltree не по текстовому представлению меток сортируется?
источник

NR

Nikolaj Rudakov in pgsql – PostgreSQL
Yaroslav Schekin
А разве ltree не по текстовому представлению меток сортируется?
Блин, да, 1.1.10 будет раньше 1.1.9
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Yaroslav Schekin
А разве ltree не по текстовому представлению меток сортируется?
да. но в условии по числовому представлению не было заявлено…
источник

NR

Nikolaj Rudakov in pgsql – PostgreSQL
Victor Yegorov
да. но в условии по числовому представлению не было заявлено…
Простите. казалось, что по примеру ясно будет, что нужно на выходе
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Nikolaj Rudakov
Простите. казалось, что по примеру ясно будет, что нужно на выходе
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Nikolaj Rudakov
Простите. казалось, что по примеру ясно будет, что нужно на выходе
попробуйте ORDER BY string_to_array(magic_column, '.')::int[]
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Добрый день. Вопрос к пользователям расширения pg_repack. В одной
из баз у меня остались две таблицы в схеме repack, судя по всему остались
после неудачного завершения запуска репака. Могу ли я их удалить ничего
не сломав при этом?
msoa=# \dt repack.*
            List of relations
Schema |       Name       | Type  | Owner
--------+------------------+-------+-------
repack | log_1358021427   | table | root
repack | table_1358021427 | table | root
(2 rows)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Zinovik
Добрый день. Вопрос к пользователям расширения pg_repack. В одной
из баз у меня остались две таблицы в схеме repack, судя по всему остались
после неудачного завершения запуска репака. Могу ли я их удалить ничего
не сломав при этом?
msoa=# \dt repack.*
            List of relations
Schema |       Name       | Type  | Owner
--------+------------------+-------+-------
repack | log_1358021427   | table | root
repack | table_1358021427 | table | root
(2 rows)
что говорит SELECT 1358021427::regclass; в той же базе?
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Victor Yegorov
что говорит SELECT 1358021427::regclass; в той же базе?
msoa=# SELECT 1358021427::regclass;
       regclass        
------------------------
msoa_inapp_domainapp
(1 row)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
если с таблицей всё в порядке и нет запущенных процессов pg_repack — можно грохнуть
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Victor Yegorov
если с таблицей всё в порядке и нет запущенных процессов pg_repack — можно грохнуть
можно подробнее про "с таблицей всё в порядке"?
как я могу это определить?
источник

NR

Nikolaj Rudakov in pgsql – PostgreSQL
Victor Yegorov
попробуйте ORDER BY string_to_array(magic_column, '.')::int[]
спасибо!
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Zinovik
можно подробнее про "с таблицей всё в порядке"?
как я могу это определить?
запросы к ней проходят, данные не потеряны, индексы на месте и всё такое
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Всем хорошего вечера.
Ребят, подскажите.
Вот есть у меня функция триггера

CREATE FUNCTION update_firebase_logs() RETURNS trigger AS $update_firebase_logs$
   BEGIN
       -- Проверить, что указаны имя сотрудника и зарплата
       IF NEW.processed_at IS not NULL THEN
           insert into firebase_log_new(created_at, message, processed_at) values(new.*);
     RETURN NULL;
       END IF;
       RETURN NEW;
   END;
$update_firebase_logs$ LANGUAGE plpgsql;


CREATE TRIGGER trigger_insert_firebase_logs
   before INSERT ON firebase_log
   FOR EACH ROW
   EXECUTE FUNCTION update_firebase_logs();


Т.е. при добавлении данных в одну таблицу - идёт проверка на NULL, в случае, если не NULL - данные записываются в другую таблицу
Да, всё работает, всё круто

Теперь возник вопрос второй
Как как правильно подключить эту фукнцию так, чтобы при обновлении таблицы ( в случае, когда поле после обновления будет не NULL) - данные перекидывались в другую таблицу

Проблему решил так:
CREATE TRIGGER trigger_update_firebase_logs
   after UPDATE ON firebase_log
   FOR EACH ROW
   EXECUTE FUNCTION update_firebase_logs();


Но она оставляет старые строки в таблице

Т.е. при обновлении нужно удалить старую строку, а новую запихнуть в другую таблицу.
Мб подскажите что?
источник

R

Rustam in pgsql – PostgreSQL
подскажите пожалуйста где ошибся, проблема с округлением целого числа

SELECT DISTINCT industry, round(sum(e_cost / 1000000000), 2) AS price_transaction
FROM ved_data.prom WHERE "period" >= '2020-01-01'GROUP BY industry ORDER BY price_transaction DESC LIMIT 7;
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
miruzzy miruzzy
Всем хорошего вечера.
Ребят, подскажите.
Вот есть у меня функция триггера

CREATE FUNCTION update_firebase_logs() RETURNS trigger AS $update_firebase_logs$
   BEGIN
       -- Проверить, что указаны имя сотрудника и зарплата
       IF NEW.processed_at IS not NULL THEN
           insert into firebase_log_new(created_at, message, processed_at) values(new.*);
     RETURN NULL;
       END IF;
       RETURN NEW;
   END;
$update_firebase_logs$ LANGUAGE plpgsql;


CREATE TRIGGER trigger_insert_firebase_logs
   before INSERT ON firebase_log
   FOR EACH ROW
   EXECUTE FUNCTION update_firebase_logs();


Т.е. при добавлении данных в одну таблицу - идёт проверка на NULL, в случае, если не NULL - данные записываются в другую таблицу
Да, всё работает, всё круто

Теперь возник вопрос второй
Как как правильно подключить эту фукнцию так, чтобы при обновлении таблицы ( в случае, когда поле после обновления будет не NULL) - данные перекидывались в другую таблицу

Проблему решил так:
CREATE TRIGGER trigger_update_firebase_logs
   after UPDATE ON firebase_log
   FOR EACH ROW
   EXECUTE FUNCTION update_firebase_logs();


Но она оставляет старые строки в таблице

Т.е. при обновлении нужно удалить старую строку, а новую запихнуть в другую таблицу.
Мб подскажите что?
Написать другую триггерную функцию (для BEFORE UPDATE), которая делает то, что нужно.
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Yaroslav Schekin
Написать другую триггерную функцию (для BEFORE UPDATE), которая делает то, что нужно.
Спасибо)
источник