Mam małą (~ 10 wierszy) tabelę wywoływaną restrictions
w mojej bazie danych PostgreSQL, w której wartości są codziennie usuwane i wstawiane.
Chciałbym mieć tabelę o nazwie restrictions_deleted
, w której każdy usuwany wiersz restrictions
będzie zapisywany automatycznie. Ponieważ restrictions
ma identyfikator seryjny, nie będzie duplikatów.
Jak napisać taki wyzwalacz w PostgreSQL?
postgresql
trigger
delete
plpgsql
Adam Matan
źródło
źródło
VALUES((OLD).*)
create function
trzeba to wcześniej wywołaćcreate trigger
. AVALUES((OLD).*)
sztuczka zasugerowana przez KayEss jest fajna.Jeśli jesteś otwarty na inne podejście, czy zastanowiłeś się nad dodaniem do tabeli flagi „usuniętej” wartości logicznej lub znacznika czasu „usunięty”.
Albo jeszcze lepiej: odmów dostępu CRUD do tabel bazy danych i obsłuż ścieżkę audytu w transakcyjnym interfejsie API :)
źródło