|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Блиа чота не дорубаю нихуя. Есть справочник raw_md.asset_types иерархический, мне нужны только листовые нижние значения их в районе 15, но может со временем меняться, и нужны коды. Есть таблица public.nums числовой с последовательностью от 1 до 1млн - для множения. Нужно заполнить таблицу raw_md.assets(type_code) случайными значениями некое количество раз - это количество задается в asset_count. Ну нахуячил запрос - который работает - просто селект: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
1 - как бл сделать вставку в таблицу этого говна? ну то есть коментарий перед insert разкомичиваю и пиздарики: SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 322
Позиция ошибки: line: 38 pos: 321 2 - как это говно обернуть в процедуру? здесь чота вообще сломался - если language plpgsql одна ошибка, если language sql - другая ошибкав общем такой код не хочет работать: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 435
Позиция ошибки: line: 35 pos: 434 я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 15:15 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
аааа бл ))))) да ща. уже думал курсор цикл городить поэтому валуэс и появился ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 15:18 |
|
Кто писал процедуры на постгрес?
|
|
---|---|
#18+
Всё получилось, еще был вопрос по параметру - убрал двоеточие и взлетело. Спасибо ... |
|
:
|
|
28.09.2022, 15:19 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Ну я процедуры только осваиваю - это вторая процедура. 1я взлетела в таком виде))))) Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
хотел добавить параметр doVacuum boolean и добавить код в конце if (doVacuum) vacuum; но чота пошло не так - плюнул на это. Но тоже интересно конструкцию if else в процедуры же полюбому можно пихать? а vacuum? тоже без if даже отказалась компилироваться... может действительно нужно юзать language plpgsql? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 15:23 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Верно, if else в sql нет, а в plpgsql - есть ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 15:33 |
|
Кто писал процедуры на постгрес?
#166695
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Щас при выполнении количество вынес в отдельную переменную, убрал подзапрос. не знаю как использовать в запросе значение переменной объявленной выше ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
28.09.2022, 15:43 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
ну ёпт. Скажу за оракл Когда пишешь нивъебенный селект бывает иногда Проще зажать выборку по функции Pipe line которая хитро генерит набор значений для where x in ( select id from f(a) ) Процедуры когда логика на сервере. А как иначе? пихать в тригера шоп всё тормозилло? проще с клиента на сервере дернуть процедуру ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 15:57 |
|
Кто писал процедуры на постгрес?
|
|
---|---|
#18+
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука! Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны. Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE). Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное. А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто. ... |
|
:
|
|
28.09.2022, 16:13 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука! Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны. Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE). Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное. А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 16:15 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука! Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны. Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE). Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное. А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто. Пытаться хранить внагрузку к основным хранимым данных кучу предвычисленных результатов разных преобразований - так себе решение, тоже не всегда будет удачным. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 16:26 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Смысл, например упаковать все готовые функции в одно место и забыть. ... |
|||
Даже лютый зверь имеет каплю жалости. Я не имею - значит я не зверь.
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:11 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Блиа чота не дорубаю нихуя. Есть справочник raw_md.asset_types иерархический, мне нужны только листовые нижние значения их в районе 15, но может со временем меняться, и нужны коды. Есть таблица public.nums числовой с последовательностью от 1 до 1млн - для множения. Нужно заполнить таблицу raw_md.assets(type_code) случайными значениями некое количество раз - это количество задается в asset_count. Ну нахуячил запрос - который работает - просто селект: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
1 - как бл сделать вставку в таблицу этого говна? ну то есть коментарий перед insert разкомичиваю и пиздарики: SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 322
Позиция ошибки: line: 38 pos: 321 2 - как это говно обернуть в процедуру? здесь чота вообще сломался - если language plpgsql одна ошибка, если language sql - другая ошибкав общем такой код не хочет работать: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 435
Позиция ошибки: line: 35 pos: 434 я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:16 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Да, завернули прикладную функцию в хранимку и вынесли её на CPU БД. Теперь, чтобы отмасштабировать приложение, надо добавлять ядра к целой БД. А если там ещё какой-то гавноотчёт считается - админов привлекать, чтобы нагрузку разделили? В итоге - эксплуатация - дороже. Масштабирование - дороже. Особенно, если БД лицензионная, где, чтобы процессор добавить надо ядро покупать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:17 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Блиа чота не дорубаю нихуя. Есть справочник raw_md.asset_types иерархический, мне нужны только листовые нижние значения их в районе 15, но может со временем меняться, и нужны коды. Есть таблица public.nums числовой с последовательностью от 1 до 1млн - для множения. Нужно заполнить таблицу raw_md.assets(type_code) случайными значениями некое количество раз - это количество задается в asset_count. Ну нахуячил запрос - который работает - просто селект: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
1 - как бл сделать вставку в таблицу этого говна? ну то есть коментарий перед insert разкомичиваю и пиздарики: SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 322
Позиция ошибки: line: 38 pos: 321 2 - как это говно обернуть в процедуру? здесь чота вообще сломался - если language plpgsql одна ошибка, если language sql - другая ошибкав общем такой код не хочет работать: Спойлер Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
SQL Error [42601]: ERROR: syntax error at or near "select"
Позиция: 435
Позиция ошибки: line: 35 pos: 434 я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:24 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Я потом стал умный и стал пейсать движки СУБД, для меня пейсатели хранимок стали быдлом и юзерами. Я на них сру, сидя на фонаре ночью. Ну и какбэ я пришёл к тому, что сраные базоёбы не нужны в мире, где дохуя денег. Если они где-то в этом мире ещё остались, значит кое-кто успешно наёбывает менеджмент на просёр денег на свои бессмысленные зарплаты и на лишние сервера - молодцы, хули. Если у тебя достаточно серьёзный бузинесс и кучи данных, то тебе легче нахуярить на C++ прямо сразу бинарник который всё хранит и процессит в том виде, в котором оптимально по железу. ... |
|||
:
Изменено: 28.09.2022, 18:26 - letrovada
Нравится:
Не нравится:
|
|||
28.09.2022, 18:25 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Это в каком виде? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:35 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Это в каком виде? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:36 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:37 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука! Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны. Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE). Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное. А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто. И чо? под этот тест микросервис писать? ну пишу процедуру - заполнения мусорными данными ряда таблиц, после несколько типовых селектов с замером скорости. так вот что бы не вспоминать что почистить до что после что сначала добавить что позже - проще нарисовать именно для этой задачи хранимку - заполнение данными (количество_таб1, количество_таб2). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:38 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:47 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Хвостовая, ебловая, какая хочешь за твои деньги. Любой нахуй битности там хуитности ска дон. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:48 |
|
Кто писал процедуры на постгрес?
|
|||
---|---|---|---|
#18+
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных? ... |
|||
деревья умирают стоя
:
Нравится:
Не нравится:
|
|||
28.09.2022, 18:49 |
|
|
start [/forum/topic.php?fid=19&msg=166758&tid=4880]: |
0ms |
get settings: |
19ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
1672ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 1761ms |
0 / 0 |