2015-01-26 12 views
5

Chcę utworzyć procedurę z BL w jego ciele. znajduję ten sam przykład w SQL, ale nie w postgresql.czy można utworzyć wyzwalacz bez procedury wykonywania w postgresql?

+2

Nie, nie jest to możliwe w Postgres (btw: co masz na myśli mówiąc "* przykład w SQL *"? - wyzwalacze są różne dla każdego DBMS, "* SQL *" to tylko język zapytań, a nie Produkt DBMS) –

+0

* PostgreSQL zezwala tylko na wykonanie funkcji zdefiniowanej przez użytkownika dla wyzwalanej akcji. Standard umożliwia wykonanie wielu innych poleceń SQL, takich jak CREATE TABLE, jako akcji wyzwalanej. ** To ograniczenie nie jest trudne do rozwiązania, ponieważ tworzy zdefiniowaną przez użytkownika funkcję, która wykonuje żądane polecenia. *** http://www.postgresql.org/docs/current/static/sql-createtrigger.html – pozs

+0

mam na myśli Zrobiłem to samo w sql, ale teraz pracuję w postgresql i nie jestem w stanie zrobić w postgresql i nie można znaleźć takiego przykładu, więc jest to możliwe? – user3555572

Odpowiedz

7

Każdy RDBMS ma swój własny język SQL. Nie można utworzyć wyzwalacz w PostgreSQL, jak można tworzyć w Oracle/MS SQL itd. W celu stworzenia spust w PostgreSQL trzeba

  1. Tworzenie funkcji w PostgreSQL z ty BL
  2. Tworzenie wyzwalacza i powiąż twoją funkcję z tym wyzwalaczem.
4

Nie jest możliwe - PostgreSQL nie obsługuje wyzwalaczy SQL - każdy wyzwalacz wymaga powiązanej funkcji wyzwalacza. Inne bazy danych obsługują tylko wyzwalacze SQL, ale nie PostgreSQL.

Powiązane problemy