-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRI.sql
More file actions
139 lines (112 loc) · 2.82 KB
/
Copy pathRI.sql
File metadata and controls
139 lines (112 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
"R.I com Trigger"
/*
Notas:
Provar -> Todo o valor de contador sequencia existente na relação sequencia existe numa
e uma vez no universo das relações tipo registo, pagina, campo, registo e valor.
Campo idseq no tipo_registo,registo,pagina,campo e valor.
VERIFICAR SE NÃO PODEMOS CRIAR UMA STORED PROCEDURE PARA NÃO REPETIR TANTO CÓDIGO (se houver tempo)
*/
# TRIGGERS PAGINA
delimiter //
CREATE TRIGGER pagina_before_insert BEFORE INSERT ON pagina
FOR EACH ROW
BEGIN
INSERT INTO sequencia (moment,userid)
VALUES (NOW(),NEW.userid);
SET NEW.idseq= LAST_INSERT_ID();
END; //
delimiter ;
delimiter //
CREATE TRIGGER pagina_before_update BEFORE UPDATE ON pagina
FOR EACH ROW
BEGIN
UPDATE sequencia
SET moment=NOW() WHERE idseq=OLD.idseq();
SET idseq= OLD.idseq();
END; //
delimiter ;
#FIM TRIGGERS PAGINA
# TRIGGERS TIPO_REGISTO
delimiter //
CREATE TRIGGER tipo_registo_before_insert BEFORE INSERT ON tipo_registo
FOR EACH ROW
BEGIN
INSERT INTO sequencia (moment,userid)
VALUES (NOW(),NEW.userid);
SET NEW.idseq= LAST_INSERT_ID();
END; //
delimiter ;
delimiter //
CREATE TRIGGER tipo_registo_before_update BEFORE UPDATE ON tipo_registo
FOR EACH ROW
BEGIN
UPDATE sequencia
SET moment=NOW() WHERE idseq=OLD.idseq();
SET idseq= OLD.idseq();
END; //
delimiter ;
#FIM TRIGGERS TIPO_REGISTO
# TRIGGERS REGISTO
delimiter //
CREATE TRIGGER registo_before_insert BEFORE INSERT ON registo
FOR EACH ROW
BEGIN
INSERT INTO sequencia (moment,userid)
VALUES (NOW(),NEW.userid);
SET NEW.idseq= LAST_INSERT_ID();
END; //
delimiter ;
delimiter //
CREATE TRIGGER registo_before_update BEFORE UPDATE ON registo
FOR EACH ROW
BEGIN
UPDATE sequencia
SET moment=NOW() WHERE idseq=OLD.idseq();
SET idseq= OLD.idseq();
END; //
delimiter ;
# FIM TRIGGERS REGISTO
# TRIGGERS CAMPO
delimiter //
CREATE TRIGGER campo_before_insert BEFORE INSERT ON campo
FOR EACH ROW
BEGIN
INSERT INTO sequencia (moment,userid)
VALUES (NOW(),NEW.userid);
SET NEW.idseq= LAST_INSERT_ID();
END; //
delimiter ;
delimiter //
CREATE TRIGGER campo_before_update BEFORE UPDATE ON campo
FOR EACH ROW
BEGIN
UPDATE sequencia
SET moment=NOW() WHERE idseq=OLD.idseq();
SET idseq= OLD.idseq();
END; //
delimiter ;
#FIM TRIGGERS CAMPO
# TRIGGERS VALOR
delimiter //
CREATE TRIGGER valor_before_insert BEFORE INSERT ON valor
FOR EACH ROW
BEGIN
INSERT INTO sequencia (moment,userid)
VALUES (NOW(),NEW.userid);
SET NEW.idseq= LAST_INSERT_ID();
END; //
delimiter ;
delimiter //
CREATE TRIGGER valor_before_update BEFORE UPDATE ON valor
FOR EACH ROW
BEGIN
UPDATE sequencia
SET moment=NOW() WHERE idseq=OLD.idseq();
SET idseq= OLD.idseq();
END; //
delimiter ;
# FIM TRIGGERS VALOR
# TESTES
# PAGINA
INSERT INTO pagina (userid, pagecounter, nome, idseq, ativa) VALUES (1556, 9999, "Nike Running Portugal - BVU_PS", 151489, true);
UPDATE pagina SET idseq=151489 WHERE pagecounter=1556 AND userid=1556;