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

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

 

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

Посмотрите: [Вики Skytools](http://wiki.postgresql.org/wiki/Skytools)

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

 

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

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

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

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

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

 

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

 

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

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

 

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

* Мне нравится Perl
* Это динамический язык, это означает, что вы можете сделать некоторые полезные трюки легко, т.е. передавая имя столбца функции запуска и делать какие-либо действия со значением этого столбца в спусковом кортеже.
* Она имеет [очень хорошую документацию](http://www.postgresql.org/docs/8.4/interactive/plperl.html)

 

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

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

 

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

 

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

 

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