Size: a a a

pgsql – PostgreSQL

2021 June 22

C

Che in pgsql – PostgreSQL
Ой не, у меня миграция, нужно обновить сохранённые данные
источник

Ð

Ð in pgsql – PostgreSQL
тогда можно сделать это на скрипте, на любом удобном языке, трансформировать и заменить
источник

C

Che in pgsql – PostgreSQL
Я бы мог и на го написать в таком случае. Может циклом собрать?
источник

C

Che in pgsql – PostgreSQL
Так я уже собрал где и на какое значение заменить
источник

Ð

Ð in pgsql – PostgreSQL
можно конечно и на пгплскл, через do, в цикле
источник

C

Che in pgsql – PostgreSQL
Осталось все в кучу собрать
источник

C

Che in pgsql – PostgreSQL
Хотелось бы покрасивее одним запросом уже удалось собрать (правда с двумя рекурсиями, но все равно)
источник

Ð

Ð in pgsql – PostgreSQL
зачем покрасивее? если это миграция, одноразовое действие. Не теряй времени, делай в лоб, императивно и просто. Тем более что датасет небольшой и оптимизаций не требует. Засовываешь алгоритм с циклами в do и запускаешь как один запрос.
источник

AC

All Cats in pgsql – PostgreSQL
всем привет)

у меня есть таблица транзакций эфира,  где значения указаны в целых числах (1 eth = 10**18). в big integer эти значения не влазят, поэтому храню их в строке

я хочу поулчить сумму всех транзакций, как мне это сделать?

select amount::integer from balances переполняет значение int:
ERROR:  value "2639000000000000000" is out of range for type integer
SQL state: 22003

вопрос: как мне это сделать? (наиболее оптимально)
источник

C

Che in pgsql – PostgreSQL
источник

C

Che in pgsql – PostgreSQL
Такая штука получилась
источник

Ð

Ð in pgsql – PostgreSQL
это трудно разобрать, я такие вещи обычно делаю императивно. Если работает то ок.
источник

C

Che in pgsql – PostgreSQL
Там просто рекурсивно нужно было найти значения которые обновить
источник

SB

Spoon Boy in pgsql – PostgreSQL
Подскажите, как сделать такую вещь... Есть задача вернуть из join только одну найденную запись. При этом, условие join составное, примерно так: SELECT * FROM TAB1 JOIN TAB2 ON TAB1.FLD1=TAB2.FLD1 OR  TAB1.FLD3 = SUBSTRING(TAB2.FLD3 FROM 'какой-то регекс'). Надо чтобы второе условие проверялось только, если не найдено записей по первому
источник

C

Che in pgsql – PostgreSQL
В конце написать and tab1.fld1 <> tab2.fld1
источник

C

Che in pgsql – PostgreSQL
Булева алгебра
источник

C

Che in pgsql – PostgreSQL
Ну ещё в скобки для порядка взять
источник

SB

Spoon Boy in pgsql – PostgreSQL
Т.е. типа так: JOIN TAB2 ON TAB1.FLD1=TAB2.FLD1 OR (  TAB1.FLD1=TAB2.FLD1 AND  TAB1.FLD3 = SUBSTRING(TAB2.FLD3) ?
источник

SB

Spoon Boy in pgsql – PostgreSQL
JOIN TAB2 ON TAB1.FLD1=TAB2.FLD1 OR (  TAB1.FLD1!=TAB2.FLD1 AND  TAB1.FLD3 = SUBSTRING(TAB2.FLD3) ?
источник

SB

Spoon Boy in pgsql – PostgreSQL
И в каким образом это гарантирует, что для записи из TAB1 будет выбрана максимум одна запись из TAB2?
источник