PostgreSQL интересен тем, что поддерживает несколько языков для записи хранимых процедур. Какой из них вы используете, и почему?
Какой язык вы используете для триггеров PostgreSQL и хранимых процедур?
Ответ 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
- Это динамический язык, что означает, что вы можете легко сделать некоторые полезные трюки, то есть передать имя столбца функции триггера и выполнить некоторые действия со значением этого столбца в триггерном кортеже.
- довольно хорошая документация