2008-08-05 3 views
16

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

+0

Это тест производительности пустых триггеров на разных языках: http://www.openscg.com/2014/05/trigger-overhead-part-2/ – 2014-08-19 13:52:37

ответ

4

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

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

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

4

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

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

6

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

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

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

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

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

5

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

+0

да, я начал использовать pl/python для чего-то и прочитал о проблемах безопасности, а затем просмотрел plpgsql и нашел, что он сделал все, что я хочу довольно просто. Мне это нравится. – 2008-10-02 20:59:30

3

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

3

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

+0

Как пользователь PL/Ruby, есть ли у вас какие-либо идеи по моему вопросу в http://stackoverflow.com/questions/617600/installing-pl-ruby-for-postgresql? - Спасибо – 2009-03-07 03:32:47

3

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

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

3

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

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