diff --git a/README.md b/README.md index 3470b23..33db3a1 100644 --- a/README.md +++ b/README.md @@ -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** -***Cria na raiz do banco de dados*** - -**Função para replicar inserções:** - -```sql -CREATE OR REPLACE FUNCTION replicate_labels_to_tags() -RETURNS TRIGGER AS $$ -BEGIN - INSERT INTO tags (id, name) - VALUES (NEW.id, NEW.title); - RETURN NEW; -END; -$$ LANGUAGE plpgsql; -``` - -**Função para replicar exclusões:** - -```sql -CREATE OR REPLACE FUNCTION delete_labels_from_tags_and_taggings() -RETURNS TRIGGER AS $$ -BEGIN - -- Exclui da tabela tags - DELETE FROM tags WHERE id = OLD.id; - -- Exclui da tabela taggings - DELETE FROM taggings WHERE tag_id = OLD.id; - RETURN OLD; -END; -$$ LANGUAGE plpgsql; -``` - -**Função para replicar atualizações:** - -```sql -CREATE OR REPLACE FUNCTION update_labels_to_tags() -RETURNS TRIGGER AS $$ -BEGIN - UPDATE tags - SET name = NEW.title - WHERE id = NEW.id; - RETURN NEW; -END; -$$ LANGUAGE plpgsql; -``` + ***Cria na raiz do banco de dados*** + + **Função para replicar inserções:** + + ```sql + CREATE OR REPLACE FUNCTION replicate_labels_to_tags() + RETURNS TRIGGER AS $$ + BEGIN + INSERT INTO tags (id, name) + VALUES (NEW.id, NEW.title); + RETURN NEW; + END; + $$ LANGUAGE plpgsql; + ``` + + **Função para replicar exclusões:** + + ```sql + CREATE OR REPLACE FUNCTION delete_labels_from_tags_and_taggings() + RETURNS TRIGGER AS $$ + BEGIN + -- Exclui da tabela tags + DELETE FROM tags WHERE id = OLD.id; + -- Exclui da tabela taggings + DELETE FROM taggings WHERE tag_id = OLD.id; + RETURN OLD; + END; + $$ LANGUAGE plpgsql; + ``` + + **Função para replicar atualizações:** + + ```sql + CREATE OR REPLACE FUNCTION update_labels_to_tags() + RETURNS TRIGGER AS $$ + BEGIN + UPDATE tags + SET name = NEW.title + WHERE id = NEW.id; + RETURN NEW; + END; + $$ LANGUAGE plpgsql; + ``` 6. **Criação dos Triggers** -***Criar na tabela labels*** - -**Trigger para inserções:** - -```sql -CREATE TRIGGER after_insert_labels -AFTER INSERT ON labels -FOR EACH ROW -EXECUTE FUNCTION replicate_labels_to_tags(); -``` - -**Trigger para exclusões:** - -```sql -CREATE TRIGGER after_delete_labels -AFTER DELETE ON labels -FOR EACH ROW -EXECUTE FUNCTION delete_labels_from_tags_and_taggings(); -``` - -**Trigger para atualizações:** - -```sql -CREATE TRIGGER after_update_labels -AFTER UPDATE ON labels -FOR EACH ROW -EXECUTE FUNCTION update_labels_to_tags(); -``` + ***Criar na tabela labels*** + + **Trigger para inserções:** + + ```sql + CREATE TRIGGER after_insert_labels + AFTER INSERT ON labels + FOR EACH ROW + EXECUTE FUNCTION replicate_labels_to_tags(); + ``` + + **Trigger para exclusões:** + + ```sql + CREATE TRIGGER after_delete_labels + AFTER DELETE ON labels + FOR EACH ROW + EXECUTE FUNCTION delete_labels_from_tags_and_taggings(); + ``` + + **Trigger para atualizações:** + + ```sql + CREATE TRIGGER after_update_labels + AFTER UPDATE ON labels + FOR EACH ROW + EXECUTE FUNCTION update_labels_to_tags(); + ``` ---