Created
October 3, 2022 01:48
-
-
Save jonathasborges1/2841efe4b5e30664616fed33f7d3f93e to your computer and use it in GitHub Desktop.
Aula 1 - Banco de Dados Pos Graduacao - create tables and Triggers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| create table empregado ( | |
| id_emp int generated always as identity, | |
| nome_emp varchar (40) not null, | |
| sobrenome_emp varchar (40) not null, | |
| primary key (id_emp) | |
| ); | |
| create table emp_audit ( | |
| id_emp_audit int generated always as identity, | |
| id_emp int not null, | |
| sobrenome_emp varchar (40) not null, | |
| troca_sobrenome timestamp (6) not null | |
| ); | |
| Create or replace function log_sobrenome() | |
| returns trigger | |
| language PLPGSQL | |
| As | |
| $$ | |
| Begin | |
| if new.sobrenome_emp<>old.sobrenome_emp | |
| then | |
| insert into emp_audit (id_emp, sobrenome_emp, troca_sobrenome) | |
| values (old.id_emp, old.sobrenome_emp, now()); | |
| end if; | |
| return new; | |
| end; | |
| $$ | |
| create trigger troca_sobrenome | |
| before update on empregado | |
| for each row | |
| execute procedure log_sobrenome(); | |
| insert into empregado (nome_emp, sobrenome_emp) values ('jonathas','borges'); | |
| insert into empregado (nome_emp, sobrenome_emp) values ('ana','silva'); | |
| select * from empregado | |
| update empregado set sobrenome_emp = 'carvalho' where id_emp=2; | |
| select * from empregado | |
| select * from emp_audit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment