Update README.md

This commit is contained in:
Tanci 2024-08-01 01:59:17 -03:00 committed by GitHub
parent 3fe19712ea
commit a8242686b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

142
README.md
View File

@ -145,80 +145,80 @@ Antes de iniciar, certifique-se de que você já tem instalado:
5. **Criação das Funções de Replicação, Exclusão e Atualização** 5. **Criação das Funções de Replicação, Exclusão e Atualização**
***Cria na raiz do banco de dados*** ***Cria na raiz do banco de dados***
**Função para replicar inserções:** **Função para replicar inserções:**
```sql ```sql
CREATE OR REPLACE FUNCTION replicate_labels_to_tags() CREATE OR REPLACE FUNCTION replicate_labels_to_tags()
RETURNS TRIGGER AS $$ RETURNS TRIGGER AS $$
BEGIN BEGIN
INSERT INTO tags (id, name) INSERT INTO tags (id, name)
VALUES (NEW.id, NEW.title); VALUES (NEW.id, NEW.title);
RETURN NEW; RETURN NEW;
END; END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
``` ```
**Função para replicar exclusões:** **Função para replicar exclusões:**
```sql ```sql
CREATE OR REPLACE FUNCTION delete_labels_from_tags_and_taggings() CREATE OR REPLACE FUNCTION delete_labels_from_tags_and_taggings()
RETURNS TRIGGER AS $$ RETURNS TRIGGER AS $$
BEGIN BEGIN
-- Exclui da tabela tags -- Exclui da tabela tags
DELETE FROM tags WHERE id = OLD.id; DELETE FROM tags WHERE id = OLD.id;
-- Exclui da tabela taggings -- Exclui da tabela taggings
DELETE FROM taggings WHERE tag_id = OLD.id; DELETE FROM taggings WHERE tag_id = OLD.id;
RETURN OLD; RETURN OLD;
END; END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
``` ```
**Função para replicar atualizações:** **Função para replicar atualizações:**
```sql ```sql
CREATE OR REPLACE FUNCTION update_labels_to_tags() CREATE OR REPLACE FUNCTION update_labels_to_tags()
RETURNS TRIGGER AS $$ RETURNS TRIGGER AS $$
BEGIN BEGIN
UPDATE tags UPDATE tags
SET name = NEW.title SET name = NEW.title
WHERE id = NEW.id; WHERE id = NEW.id;
RETURN NEW; RETURN NEW;
END; END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
``` ```
6. **Criação dos Triggers** 6. **Criação dos Triggers**
***Criar na tabela labels*** ***Criar na tabela labels***
**Trigger para inserções:** **Trigger para inserções:**
```sql ```sql
CREATE TRIGGER after_insert_labels CREATE TRIGGER after_insert_labels
AFTER INSERT ON labels AFTER INSERT ON labels
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION replicate_labels_to_tags(); EXECUTE FUNCTION replicate_labels_to_tags();
``` ```
**Trigger para exclusões:** **Trigger para exclusões:**
```sql ```sql
CREATE TRIGGER after_delete_labels CREATE TRIGGER after_delete_labels
AFTER DELETE ON labels AFTER DELETE ON labels
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION delete_labels_from_tags_and_taggings(); EXECUTE FUNCTION delete_labels_from_tags_and_taggings();
``` ```
**Trigger para atualizações:** **Trigger para atualizações:**
```sql ```sql
CREATE TRIGGER after_update_labels CREATE TRIGGER after_update_labels
AFTER UPDATE ON labels AFTER UPDATE ON labels
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION update_labels_to_tags(); EXECUTE FUNCTION update_labels_to_tags();
``` ```
--- ---