Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Посмотрите: Wiki Skytools

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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