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

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

Ответы [ 9 ]

7 голосов
/ 06 августа 2008

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

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

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

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

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

5 голосов
/ 16 сентября 2008

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

5 голосов
/ 12 сентября 2008

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

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

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

4 голосов
/ 05 августа 2008

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

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

3 голосов
/ 05 сентября 2009

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

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

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

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

3 голосов
/ 18 сентября 2008

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

3 голосов
/ 17 сентября 2008

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

0 голосов
/ 01 июня 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...