Удаляет ли удаление таблицы ее триггеры, а также функции? - PullRequest
0 голосов
/ 19 июня 2020

Я создал таблицу score, а также создал функцию и триггер вместе с ней.

CREATE TABLE scores( 
--fields
);

CREATE FUNCTION scores_before_save() RETURNS trigger AS $$
BEGIN
   -- function logic
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER scores_before_save BEFORE INSERT OR UPDATE ON scores
    FOR EACH ROW EXECUTE PROCEDURE scores_before_save();

Теперь я удалил эту таблицу

DROP TABLE scores;

Итак, мой вопрос это триггеры и функции, которые автоматически удаляются после удаления таблицы, или нам нужно удалить их вручную?

1 Ответ

2 голосов
/ 19 июня 2020

Вы можете легко их проверить.

-- check function existence
SELECT proname  FROM pg_proc WHERE proname    = 'scores_before_save';

-- check trigger existence
SELECT trigger_name from information_schema.triggers 
where trigger_name = 'scores_before_save';

как видите, после таблицы сброса функция остается здесь, но триггер удаляется.

...