· 8 years ago · Jan 11, 2018, 07:40 PM
1CREATE TABLE geo.projetos
2(
3 idproj serial NOT NULL,
4 ... , -- outros atributos
5 CONSTRAINT projetos_pkey PRIMARY KEY (idproj),
6 ... -- Outras constraints,
7);
8
9CREATE OR REPLACE FUNCTION geo.drop_schema_projeto_id()
10RETURNS trigger as $dsp$
11 DECLARE schema_to_drop text := 'proj_' || OLD.idproj::text;
12 BEGIN
13 DROP SCHEMA IF EXISTS schema_to_drop CASCADE;
14 RAISE NOTICE 'Schema a ser removido: %', schema_to_drop;
15 ETURN OLD;
16 END;
17$dsp$ LANGUAGE plpgsql;
18
19/*----------------------------------------------------------------*/
20DROP TRIGGER drop_schema_projeto_id ON geo.projetos;
21CREATE TRIGGER drop_schema_projeto_id
22 AFTER DELETE
23 ON geo.projetos
24 FOR EACH ROW
25 EXECUTE PROCEDURE geo.drop_schema_projeto_id();
26
27DELETE FROM geo.projetos WHERE idproj = 87;
28
29NOTA: esquema "schema_to_drop" não existe, ignorando
30CONTEXTO: comando SQL "DROP SCHEMA IF EXISTS schema_to_drop CASCADE"
31função PL/pgSQL geo.drop_schema_projeto_id() linha 5 em comando SQL
32NOTA: Schema a ser removido: proj_87
33DELETE 1