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

StackOverflow https://stackoverflow.com/questions/1970

Вопрос

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

Это было полезно?

Решение

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

Взгляните: Wiki Skytools - Вики- инструменты

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top