· 7 years ago · Dec 29, 2018, 05:00 PM
1insert into leggeapprovata (titolo,
2 relatore,
3 numerolegislatura,
4 testo,
5 votisi,
6 votino,
7 astenuti,
8 datapromulgazione,
9 promulgatada,
10 numlegge,
11 dataapprovazionecamera,
12 dataapprovazionesenato)
13values ('[Legge di bilancio 2018] Bilancio di previsione dello Stato per l anno finanziario 2018 e bilancio pluriennale per il triennio 2018-2020',
14'{"Marcello Gualdani","Magda Angela Zanoni","Pier Carlo Padoan"}',
15'17',
16'https://parlamento17.openpolis.it/atto/documento/id/523404',
17'140',
18'94',
19'0',
20'2017-12-23',
21'Sergio Mattarella',
22'S.2960-B ',
23'2017-12-22',
24'2017-12-23');
25
26^
27
28insert into leggeapprovata (titolo,
29 relatore,
30 numerolegislatura,
31 testo,
32 votisi,
33 votino,
34 astenuti,
35 datapromulgazione,
36 promulgatada,
37 numlegge,
38 dataapprovazionecamera,
39 dataapprovazionesenato)
40 VALUES (ddl.titolo,
41 ddl.relatore,
42 legislatura.numero,
43 ddl.testo,
44 votazione.favorevoli,
45 votazione.contrari,
46 votazione.astenuti,
47 promulgazione.data,
48 promulgazione.presidente,
49 votazione.codice,
50 votazione.data,
51 votazione.data)
52
53begin
54IF EXISTS (SELECT 1 FROM ddl
55WHERE NEW.titolo = ddl.titolo AND ddl.promulgato ='si')
56-- AND
57--IF EXISTS (SELECT 1 FROM promulgazione WHERE
58 -- NEW.titolo =promulgazione.ddl)
59--AND IF EXISTS (SELECT 1 FROM votazione WHERE NEW.titolo=votazione.ddl)
60 then
61 insert into leggeapprovata (titolo,
62 relatore,
63 numerolegislatura,
64 testo,
65 votisi,
66 votino,
67 astenuti,
68 datapromulgazione,
69 promulgatada,
70 numlegge,
71 dataapprovazionecamera,
72 dataapprovazionesenato)
73 VALUES (ddl.titolo,
74 ddl.relatore,
75 legislatura.numero,
76 ddl.testo,
77 votazione.favorevoli,
78 votazione.contrari,
79 votazione.astenuti,
80 promulgazione.data,
81 promulgazione.presidente,
82 votazione.codice,
83 votazione.data,
84 votazione.data);
85 end if;
86
87IF EXISTS (SELECT 1 FROM votazione WHERE NEW.titolo =votazione.ddl and votazione.tipoassemblea='camera')
88 then
89 insert into leggeapprovata (dataapprovazionecamera)
90 values (votazione.data);
91 elsif EXISTS (SELECT 1 FROM votazione WHERE NEW.titolo =votazione.ddl and votazione.tipoassemblea='senato')
92 then
93 insert into leggeapprovata (dataapprovazionesenato)
94 values (votazione.data);
95 end if;
96
97 return new;
98
99GRANT ALL ON TABLE public.inserimentoinleggeapprovata TO postgres;
100GRANT ALL ON TABLE public.inserimentoinleggeapprovata TO public;
101end;
102
103
104CREATE TRIGGER inserimentoinleggeapprovata
105 BEFORE INSERT
106 ON public.leggeapprovata
107 FOR EACH ROW
108 EXECUTE PROCEDURE public.inserimentoinleggeapprovata();
109
110
111
112
113CREATE TABLE public.leggeapprovata
114(
115 titolo character varying(500) NOT NULL,
116 numerolegislatura integer NOT NULL,
117 testo text,
118 votisi integer,
119 votino integer,
120 astenuti integer,
121 datapromulgazione date,
122 promulgatada character varying(100),
123 relatore character varying(100)[] NOT NULL,
124 dataapprovazionecamera date,
125 dataapprovazionesenato date,
126 numlegge character(10),
127 CONSTRAINT leggeapprovatapkey PRIMARY KEY (titolo, numerolegislatura, relatore),
128 CONSTRAINT leggeapprovatanumerolegislaturafkey FOREIGN KEY (numerolegislatura)
129 REFERENCES public.legislatura (numero) MATCH SIMPLE
130 ON UPDATE NO ACTION ON DELETE NO ACTION,
131 CONSTRAINT leggeapprovatapromulgatadafkey FOREIGN KEY (promulgatada)
132 REFERENCES public.presidentedellarepubblica (presidente) MATCH SIMPLE
133 ON UPDATE NO ACTION ON DELETE NO ACTION,
134 CONSTRAINT leggeapprovatatestofkey FOREIGN KEY (testo, relatore)
135 REFERENCES public.ddl (testo, relatore) MATCH SIMPLE
136 ON UPDATE NO ACTION ON DELETE NO ACTION,
137 CONSTRAINT leggeapprovatatitolofkey FOREIGN KEY (titolo, datapromulgazione)
138 REFERENCES public.promulgazione (ddl, data) MATCH SIMPLE
139 ON UPDATE NO ACTION ON DELETE NO ACTION,
140 CONSTRAINT leggeapprovatavotisifkey FOREIGN KEY (votisi, votino, astenuti, numlegge)
141 REFERENCES public.votazione (favorevoli, contrari, astenuti, codice) MATCH SIMPLE
142 ON UPDATE NO ACTION ON DELETE NO ACTION,
143 CONSTRAINT leggeapprovatatitolonumerolegislaturatestorelatorenukey UNIQUE (titolo, numerolegislatura, testo, relatore, numlegge)
144)
145WITH (
146 OIDS=FALSE
147);
148ALTER TABLE public.leggeapprovata
149 OWNER TO postgres;
150GRANT ALL ON TABLE public.leggeapprovata TO public;
151GRANT ALL ON TABLE public.leggeapprovata TO postgres WITH GRANT OPTION;
152
153-- Trigger: inserimentoinleggeapprovata on public.leggeapprovata
154
155-- DROP TRIGGER inserimentoinleggeapprovata ON public.leggeapprovata;
156
157CREATE TRIGGER inserimentoinleggeapprovata
158 BEFORE INSERT
159 ON public.leggeapprovata
160 FOR EACH ROW
161 EXECUTE PROCEDURE public.inserimentoinleggeapprovata();