powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [закрыт для гостей] / Кто писал процедуры на постгрес?
25 сообщений из 102, страница 1 из 5
Кто писал процедуры на постгрес?
    #166628
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блиа чота не дорубаю нихуя.

Есть справочник 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.
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  --insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
теперь 2 вопроса:
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.
drop procedure if exists raw_md.assets_random_insert;
create or replace procedure raw_md.assets_random_insert (asset_count int)
language plpgsql
as $body$
begin
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
end;
$body$;
call raw_md.assets_random_insert(15);
SQL Error [42601]: ERROR: syntax error at or near "select" Позиция: 435 Позиция ошибки: line: 35 pos: 434
я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166629
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

values не пробовал убрать?
...
Рейтинг: 1 / 0
Нравится: Дед-Папыхтет
Кто писал процедуры на постгрес?
    #166633
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  28.09.2022, 15:17
[игнорируется]
Дед-Папыхтет [игнорируется] 

values не пробовал убрать?
аааа бл )))))
да ща.
уже думал курсор цикл городить поэтому валуэс и появился
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166636
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  28.09.2022, 15:17
[игнорируется]
Дед-Папыхтет [игнорируется] 

values не пробовал убрать?
Всё получилось, еще был вопрос по параметру - убрал двоеточие и взлетело.
Спасибо
...
Рейтинг: 1 / 0
Нравится: Горбатый ёж
Кто писал процедуры на постгрес?
    #166637
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

Кстати на мой вкус SQL процедуры очень на любителя и имеют весьма ограниченное применение.
Я даже не очень понимаю смысла их существования.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166639
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  28.09.2022, 15:19
[игнорируется]
Дед-Папыхтет [игнорируется] 

Кстати на мой вкус SQL процедуры очень на любителя и имеют весьма ограниченное применение.
Я даже не очень понимаю смысла их существования.
Ну я процедуры только осваиваю - это вторая процедура. 1я взлетела в таком виде)))))
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
drop procedure if exists raw_md.assets_clear;
create or replace procedure raw_md.assets_clear()
language sql
as $$
  truncate table raw_md.asset_values;

  alter table raw_md.asset_values
    drop constraint asset_values_asset_id_fkey;

  truncate table raw_md.assets;

  alter table raw_md.asset_values
    add foreign key (asset_id) references raw_md.assets(asset_id);
$$;

call raw_md.assets_clear();
кстати вопрос который возник во время написания...
хотел добавить параметр doVacuum boolean

и добавить код в конце

if (doVacuum) vacuum;

но чота пошло не так - плюнул на это. Но тоже интересно конструкцию if else в процедуры же полюбому можно пихать? а vacuum? тоже без if даже отказалась компилироваться... может действительно нужно юзать language plpgsql?
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166672
a.v.z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верно, if else в sql нет, а в plpgsql - есть
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166695
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас при выполнении количество вынес в отдельную переменную, убрал подзапрос.
не знаю как использовать в запросе значение переменной объявленной выше
err1.png
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166696
a.v.z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

select count(*) into variable from ...
...
Изменено: 28.09.2022, 15:46 - a.v.z
Рейтинг: 2 / 0
Кто писал процедуры на постгрес?
    #166724
Мудило
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Горбатый ёж  28.09.2022, 15:19
[игнорируется]
Дед-Папыхтет [игнорируется] 

Кстати на мой вкус SQL процедуры очень на любителя и имеют весьма ограниченное применение.
Я даже не очень понимаю смысла их существования.
ну ёпт. Скажу за оракл

Когда пишешь нивъебенный селект бывает иногда Проще

зажать выборку по функции Pipe line которая хитро генерит набор значений для
where x in ( select id from f(a) )

Процедуры когда логика на сервере. А как иначе? пихать в тригера шоп всё тормозилло? проще с клиента на сервере дернуть процедуру
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166758
Ханурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Барсук-копатель  28.09.2022, 15:52
[игнорируется]
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука!
Микросервисы - это хорошо, но есть много ситуаций, когда это будет из пушки по воробьям.

Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны.

Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE).
Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное.
А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто.
...
Рейтинг: 1 / 0
Нравится: Кусь
Кто писал процедуры на постгрес?
    #166760
Мудило
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Ханурик  28.09.2022, 16:13
[игнорируется]
Барсук-копатель  28.09.2022, 15:52
[игнорируется]
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука!
Микросервисы - это хорошо, но есть много ситуаций, когда это будет из пушки по воробьям.

Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны.

Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE).
Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное.
А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто.
ну я так примерно и нопейсал только ты более чотко сформулил
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166782
Ханурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Барсук-копатель  28.09.2022, 16:22
[игнорируется]
Ханурик  28.09.2022, 16:13
[игнорируется]
Барсук-копатель  28.09.2022, 15:52
[игнорируется]
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука!
Микросервисы - это хорошо, но есть много ситуаций, когда это будет из пушки по воробьям.

Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны.

Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE).
Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное.
А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто.
ХРАНИ В ФОРМАТЕ, ПОЗВОЛЯЩЕМ СРАВНИВАТЬ БЕЗ ПРЕОБРАЗОВАНИЙ, СУКА!
Это не всегда бывает можно - тем более что иногда бывает нужно преобразоваывать то так, то сяк в зависимости от каких-то условий.
Пытаться хранить внагрузку к основным хранимым данных кучу предвычисленных результатов разных преобразований - так себе решение, тоже не всегда будет удачным.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166964
Тень на плетень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже лютый зверь имеет каплю жалости. Я не имею - значит я не зверь.
Горбатый ёж  28.09.2022, 15:19
[игнорируется]
Дед-Папыхтет [игнорируется] 

Кстати на мой вкус SQL процедуры очень на любителя и имеют весьма ограниченное применение.
Я даже не очень понимаю смысла их существования.
Смысл, например упаковать все готовые функции в одно место и забыть.
...
Даже лютый зверь имеет каплю жалости. Я не имею - значит я не зверь.
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166973
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  28.09.2022, 15:15
[игнорируется]
Блиа чота не дорубаю нихуя.

Есть справочник 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.
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  --insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
теперь 2 вопроса:
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.
drop procedure if exists raw_md.assets_random_insert;
create or replace procedure raw_md.assets_random_insert (asset_count int)
language plpgsql
as $body$
begin
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
end;
$body$;
call raw_md.assets_random_insert(15);
SQL Error [42601]: ERROR: syntax error at or near "select" Позиция: 435 Позиция ошибки: line: 35 pos: 434
я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.
Я писал в 2013. Я тогда был умственно неполноценным.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166976
kkk-jjj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, завернули прикладную функцию в хранимку и вынесли её на CPU БД. Теперь, чтобы отмасштабировать приложение, надо добавлять ядра к целой БД. А если там ещё какой-то гавноотчёт считается - админов привлекать, чтобы нагрузку разделили? В итоге - эксплуатация - дороже. Масштабирование - дороже. Особенно, если БД лицензионная, где, чтобы процессор добавить надо ядро покупать.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166989
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Барсук-копатель  28.09.2022, 18:17
[игнорируется]
letrovada  28.09.2022, 18:16
[игнорируется]
Дед-Папыхтет  28.09.2022, 15:15
[игнорируется]
Блиа чота не дорубаю нихуя.

Есть справочник 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.
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  --insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
теперь 2 вопроса:
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.
drop procedure if exists raw_md.assets_random_insert;
create or replace procedure raw_md.assets_random_insert (asset_count int)
language plpgsql
as $body$
begin
  with ast as
  (
    select type_code, row_number() over (order by type_code) as rn
    from raw_md.asset_types
    where parent_code is not null
  )
  , n as
  (
    select num,
      1 + cast((select max(rn) as mrn from ast) * random() as int) as rnd
    from public.nums n
  )
  insert into raw_md.assets(type_code) values
  select ast.type_code
  from n join ast
    on n.rnd = ast.rn
  limit :asset_count;
end;
$body$;
call raw_md.assets_random_insert(15);
SQL Error [42601]: ERROR: syntax error at or near "select" Позиция: 435 Позиция ошибки: line: 35 pos: 434
я понимаю что чота где то на поверхности, может примеры есть каких нибудь процедур которые чота вставляют используют параметры и переменные? в гугле особо нихера не нашел рабочего.
Я писал в 2013. Я тогда был умственно неполноценным.
Ты не особо развился и сейчас
Тут сложно согласиться.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166991
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я потом стал умный и стал пейсать движки СУБД, для меня пейсатели хранимок стали быдлом и юзерами.
Я на них сру, сидя на фонаре ночью.
Ну и какбэ я пришёл к тому, что сраные базоёбы не нужны в мире, где дохуя денег.
Если они где-то в этом мире ещё остались, значит кое-кто успешно наёбывает менеджмент на просёр денег на свои бессмысленные зарплаты и на лишние сервера - молодцы, хули.
Если у тебя достаточно серьёзный бузинесс и кучи данных, то тебе легче нахуярить на C++ прямо сразу бинарник который всё хранит и процессит в том виде, в котором оптимально по железу.
...
Изменено: 28.09.2022, 18:26 - letrovada
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166997
kkk-jjj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это в каком виде?
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #166998
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkk-jjj  28.09.2022, 18:35
[игнорируется]
Это в каком виде?
Хер знает. А чё за вопрос у тебя? Поделись с нами.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #167000
kkk-jjj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных?
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #167002
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Барсук-копатель  28.09.2022, 16:22
[игнорируется]
Ханурик  28.09.2022, 16:13
[игнорируется]
Барсук-копатель  28.09.2022, 15:52
[игнорируется]
Какие нахуй процедуры в постгре?! Папых совсем ебанулся! Все со своим монолитным подходом! Изучай и пиши микросервисы, сука!
Микросервисы - это хорошо, но есть много ситуаций, когда это будет из пушки по воробьям.

Процедуры - тоже не нужно пихать куда ни попадя, но в своей нише они полезны.

Простой пример: пусть у нас есть некое преобразование данных (ну, например, преобразование каких-нибудь координат из одной системы в другую), и есть какие-то запросы к базе, где результат этого преобразования используется (например, сравнивается с каким-то другим полем таблицы внутри условия WHERE).
Вопрос - где будем программировать код для этого преобразования данных? Можно, конечно, это сделать в своем приложении, можно даже завернуть внутрь ORM, можно при желании даже сделать микросервисом - но тогда приложение с такой логикой получится монструозное и, возможно, тормозное.
А вот если это преобразование данных сделать процедурой, и в других запросах эту процедуру вызывать - все получится легко и просто.
ХРАНИ В ФОРМАТЕ, ПОЗВОЛЯЩЕМ СРАВНИВАТЬ БЕЗ ПРЕОБРАЗОВАНИЙ, СУКА!
Слушай, ну щас задача простая до написания микросервиса, нужно продемонстрировать выдерживание нагрузки определенной структуры. То есть задача нагенерить случайных данных в заданную структуру 1млн-10-млн-100млн. и показать цифрами скорость запросов. Ну такую задачу поставил начальник.
И чо? под этот тест микросервис писать? ну пишу процедуру - заполнения мусорными данными ряда таблиц, после несколько типовых селектов с замером скорости. так вот что бы не вспоминать что почистить до что после что сначала добавить что позже - проще нарисовать именно для этой задачи хранимку - заполнение данными (количество_таб1, количество_таб2).
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #167007
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkk-jjj  28.09.2022, 18:37
[игнорируется]
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных?
C++ - просто инструмент, которым ты ебошишь по железке-процессору. Что процессор-железка может, то и будет у тоби.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #167010
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хвостовая, ебловая, какая хочешь за твои деньги. Любой нахуй битности там хуитности ска дон.
...
Рейтинг: 0 / 0
Кто писал процедуры на постгрес?
    #167012
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
искажаю смысл
letrovada  28.09.2022, 18:47
[игнорируется]
kkk-jjj  28.09.2022, 18:37
[игнорируется]
Ну вот, например, хвостовая рекурсия в C++ для 64-битных аргументов будет работать или нет? А для 128-битных?
C++ - просто инструмент, которым ты ебошишь по железке-процессору. Что процессор-железка может, то и будет у тоби.
просто инструмент что бы машкоды более внятно выглядели
...
деревья умирают стоя
Рейтинг: 0 / 0
25 сообщений из 102, страница 1 из 5
Форумы / PostgreSQL [закрыт для гостей] / Кто писал процедуры на постгрес?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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