Procedures Functions e Triggers
Procedures Functions e Triggers
Passos:
1. Instalar a biblioteca psycopg2 : Se você ainda não a tem instalada, use
o seguinte comando:
Função no PostgreSQL:
import psycopg2
# Obter o resultado
idade = cur.fetchone()[0]
Procedure no PostgreSQL:
import psycopg2
# Chamar a procedure
cur.callproc('inserir_usuario', (nome, email))
# Commitar a transação
conn.commit()
Resumo:
execute() é utilizado para chamar functions e selects.
Para isso, você pode usar a biblioteca psycopg2 com o módulo pool ou
bibliotecas como SQLAlchemy com suporte nativo ao pooling.
import psycopg2
from psycopg2 import pool
2. Batching de Operações
Se você precisa realizar muitas inserções, atualizações ou chamadas de
funções, agrupar essas operações em um lote pode ser mais eficiente do
que executar uma de cada vez. Isso reduz a sobrecarga de envio de
múltiplas requisições ao banco de dados.
import psycopg2
cur = conn.cursor()
# Commitar a transação
conn.commit()
3. Uso de Transações
Agrupar múltiplas operações dentro de uma única transação (usando
BEGIN e COMMIT ) é mais eficiente do que executar cada operação
separadamente. Quando o PostgreSQL faz uma operação, ele precisa
gerenciar o estado de transação, então consolidar várias operações em uma
única transação reduz essa carga.
Exemplo de Transação:
conn = psycopg2.connect(
host="localhost",
database="seu_banco_de_dados",
user="seu_usuario",
password="sua_senha"
)
cur = conn.cursor()
# Iniciar a transação
conn.autocommit = False
try:
cur.execute("CALL inserir_usuario(%s, %s)", ('Sandro', 'sandro@ema
cur.execute("CALL inserir_usuario(%s, %s)", ('Ana', '[email protected]
# Commitar as operações
conn.commit()
except Exception as e:
# Fazer rollback em caso de erro
conn.rollback()
print(f"Erro: {e}")
finally:
cur.close()
conn.close()
Exemplo:
Conclusão:
Para tornar o uso de functions e procedures mais eficiente no Python: