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

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

9 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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