powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [закрыт для гостей] / Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
8 сообщений из 8, страница 1 из 1
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119228
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На mssql это делал многократно...
ну например, есть в таблице поле doc_date типа timestamp(postgres)/datetime(mssql), нужно определить 12 секций, что бы чистить данные старше 3-6 месяцев - truncate partition.

В мсскл делаю:
Код: SQL
1.
2.
3.
4.
5.
6.
7.
create table docs
(
    id bigint identity not null,
    doc_date datetime not null,
    ... набор полей
    partition_key as datepart(month,doc_date) persisted
) on ps_month(partition_key)
Здесь обязательно поле которое передается в схему секционирования должно быть материализовано=persisted и это работает норм...

Но бл в постгрес чота нихуйа...
Код: SQL
1.
2.
3.
4.
5.
6.
7.
create table docs
(
    id bigint not null GENERATED ALWAYS AS IDENTITY,
    doc_date timestamp not null,
    ... набор полей
    partition_key int generated always as (EXTRACT(MONTH FROM doc_date)) stored
) PARTITION BY RANGE(partition_key)
вываливает ошибку:
ERROR: cannot use generated column in partition key LINE 18: PARTITION BY RANGE(partition_key); ^ DETAIL: Column "partition_key" is a generated column. SQL state: 42P17
По обычному полю позволяет делать секции... Как обходить? Какие идеи?
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119232
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  18.08.2022, 13:02
[игнорируется]
Как обходить? Какие идеи?
Никак.
А что за сервак-то? ПРО небось?
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119238
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  18.08.2022, 13:06
[игнорируется]
Дед-Папыхтет  18.08.2022, 13:02
[игнорируется]
Как обходить? Какие идеи?
Никак.
А что за сервак-то? ПРО небось?
Обычный какой то из докера
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119245
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

Можно попробовать через наследование, там можно чек сделать.
ЗЫ но там триггер придётся писать на вставку.
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119246
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  18.08.2022, 13:26
[игнорируется]
Дед-Папыхтет [игнорируется] 

Можно попробовать через наследование, там можно чек сделать.
ЗЫ но там триггер придётся писать на вставку.
Да проще обычное поле сделать и триггер на апдейт и вставку...
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119248
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  18.08.2022, 13:28
[игнорируется]
Горбатый ёж  18.08.2022, 13:26
[игнорируется]
Дед-Папыхтет [игнорируется] 

Можно попробовать через наследование, там можно чек сделать.
ЗЫ но там триггер придётся писать на вставку.
Да проще обычное поле сделать и триггер на апдейт и вставку...
А чего спрашиваешь тогда...
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119261
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  18.08.2022, 13:29
[игнорируется]
Дед-Папыхтет  18.08.2022, 13:28
[игнорируется]
Горбатый ёж  18.08.2022, 13:26
[игнорируется]
Дед-Папыхтет [игнорируется] 

Можно попробовать через наследование, там можно чек сделать.
ЗЫ но там триггер придётся писать на вставку.
Да проще обычное поле сделать и триггер на апдейт и вставку...
А чего спрашиваешь тогда...
Ну надеялся что можно этим не морочиться - можно же ошибиться внезапно при расчетах или какой нибудь хуй проапдейтит это поле... а вычисляемое поле ридонли... гарантия зависимости от даты
...
Рейтинг: 0 / 0
Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
    #119683
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  18.08.2022, 13:51
[игнорируется]
какой нибудь хуй проапдейтит это поле...
Тогда через наследование.
ЗЫ чек повесь на поле, чтобы не проапдейтили случайно.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [закрыт для гостей] / Как секционировать таблицу в PostgreSQL по сгенерированному столбцу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]