Сведения о вопросе

Fhohir

16:03, 1st July, 2020

Теги

Какой язык вы используете для PostgreSQL триггеров и хранимых процедур?

Просмотров: 555   Ответов: 9

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



  Сведения об ответе

#hash

18:03, 1st July, 2020

Я действительно использовал только PL/pgSQL,, но это было потому, что мне нужно было несколько хранимых процедур относительно быстро и не хотелось добавлять дополнительные модули на сервер.

В более долгосрочной перспективе я бы, вероятно, использовал PL / Perl или PL/Python,, как я использую perl для быстрого написания сценариев и уже некоторое время смотрю на python.

Одна вещь, которую я обнаружил, это отсутствие хорошей документации для этого на сайте PostgreSQL. Руководства были основательными в качестве справочного материала, но не работали хорошо, как учебник, чтобы помочь показать людям, как это должно быть сделано.

Это, в сочетании с очень хорошей средой отладки, означало, что мой первый опыт написания процедур включал в себя изучение странных синтаксических ошибок в течение длительного времени.

Если кто-то знает хороший сайт с учебниками и т. д. для программирования PostgreSQL, я хотел бы получить ссылку на него.


  Сведения об ответе

dumai

18:03, 1st July, 2020

Skype использует PostgreSQL вместе с python, и они улучшили PL/Python до его текущего состояния, поэтому я бы сомневался, что поддержка python намного отстает от perl. В конце концов, они написали систему очередей/репликации поверх этих Привязок :-)

Взгляните: Wiki Skytools

Судя по быстрому просмотру документации, python, похоже, имеет меньше документация, чем привязки perl, но я бы предложил просто придерживаться с языком, который вам наиболее удобен.


  Сведения об ответе

ITSME

18:03, 1st July, 2020

Я пишу почти все на plpgsql, но я также в первую очередь специалист по базам данных, поэтому он обычно подходит мне лучше, чем любой другой язык. Но есть много вещей, которые он делает не очень хорошо, и в этом случае другой язык, такой как plperl или plpython, является хорошей ставкой. Конечно, если скорость является серьезной проблемой, то C-это путь, по которому нужно идти.


  Сведения об ответе

VCe znayu

18:03, 1st July, 2020

Когда я написал свой первый триггер, он был в Perl, потому что это был язык, используемый в Примере, который я нашел, но последние триггеры я написал где-то в Python, потому что мне это удобнее.

Я думаю, что комфорт программиста - это моя главная причина выбрать python, но я думаю, что Perl все еще лучше поддерживается.


  Сведения об ответе

fo_I_K

18:03, 1st July, 2020

Я использую PL / Perl, потому что:

  • Мне нравится Perl
  • Это динамический язык, который означает, что вы можете легко выполнять некоторые полезные трюки, например, передавать имя столбца в триггерную функцию и выполнять некоторые действия со значением этого столбца в триггерном кортеже.
  • Он имеет довольно хорошую документацию


  Сведения об ответе

LAST

18:03, 1st July, 2020

Для чего-то действительно маленького/простого или что не требует много манипуляций со строками или логики, я использую plpgsql, потому что это быстро. Для более сложных вещей я использую plperl, потому что мне это нравится.


  Сведения об ответе

darknet

18:03, 1st July, 2020

PL / Ruby потому что я использую Ruby каждый день в любом случае.


  Сведения об ответе

$DOLLAR

18:03, 1st July, 2020

Я использую PL/pgSQL для почти всего, и если есть что-то, что он не может сделать, я пишу функции в PL/Python (который качает). Вы также можете использовать PL/Java, PL/Perl, PL/PHP.

Я бы сказал, что Python, вероятно, является лучшим из всех, потому что Python находится почти в каждой системе linux. Perl будет вторым, а Python победит его из-за более легкого синтаксиса чтения.


  Сведения об ответе

crush

18:03, 1st July, 2020

Я бы сказал, что Python, вероятно, лучше всего вокруг одного, потому что Python находится почти на каждом linux system.Python избивая его из-за более легкого синтаксиса чтения


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться