Atualizando no BD
Neste capítulo, será abordado como atualizar registros em um banco de dados utilizando o SQLAlchemy. A atualização de registros é fundamental ao modificar dados existentes em suas tabelas, como alterações em descrições ou outros campos. O SQLAlchemy oferece métodos eficientes e diretos para realizar atualizações.
Atualizando um Único Registro
A operação de atualização mais comum é a modificação de um único registro. Para isso, é necessário buscar o objeto, atualizar seus atributos e então salvar as alterações.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Para recuperar um produto pelo seu ID, utiliza-se uma consulta com filtro especificando o ID desejado. Após atualizar o campo description
do produto, a chamada de session.commit()
salva as alterações no banco de dados.
Atualizando Múltiplos Registros
Em alguns casos, é necessário atualizar múltiplos registros simultaneamente. O SQLAlchemy permite o uso de filter()
com o método update()
para modificar registros de forma eficiente.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Para filtrar produtos com preço acima de $1000, utiliza-se uma consulta com condição sobre o preço. O método update
aplica as alterações desejadas a todos os registros correspondentes, enquanto o argumento synchronize_session="fetch"
garante que a sessão permaneça sincronizada após a atualização.
Atualizações em Lote
Para alterações em grande escala, atualizações em lote são mais eficientes, pois modificam diretamente os registros no banco de dados sem carregar objetos na memória. Isso as torna ideais para atualizar várias linhas de uma só vez.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Este código atualiza de forma eficiente a descrição de todos os produtos com preço inferior a $500 em uma única operação. Atualizações em lote são mais rápidas e economizam memória em comparação com a atualização individual de registros.
Swipe to start coding
- Recuperar todos os produtos do banco de dados.
- Calcular o novo preço para cada produto, reduzindo-o em 20%.
- Salvar os preços atualizados no banco de dados.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.76
Atualizando no BD
Deslize para mostrar o menu
Neste capítulo, será abordado como atualizar registros em um banco de dados utilizando o SQLAlchemy. A atualização de registros é fundamental ao modificar dados existentes em suas tabelas, como alterações em descrições ou outros campos. O SQLAlchemy oferece métodos eficientes e diretos para realizar atualizações.
Atualizando um Único Registro
A operação de atualização mais comum é a modificação de um único registro. Para isso, é necessário buscar o objeto, atualizar seus atributos e então salvar as alterações.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Para recuperar um produto pelo seu ID, utiliza-se uma consulta com filtro especificando o ID desejado. Após atualizar o campo description
do produto, a chamada de session.commit()
salva as alterações no banco de dados.
Atualizando Múltiplos Registros
Em alguns casos, é necessário atualizar múltiplos registros simultaneamente. O SQLAlchemy permite o uso de filter()
com o método update()
para modificar registros de forma eficiente.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Para filtrar produtos com preço acima de $1000, utiliza-se uma consulta com condição sobre o preço. O método update
aplica as alterações desejadas a todos os registros correspondentes, enquanto o argumento synchronize_session="fetch"
garante que a sessão permaneça sincronizada após a atualização.
Atualizações em Lote
Para alterações em grande escala, atualizações em lote são mais eficientes, pois modificam diretamente os registros no banco de dados sem carregar objetos na memória. Isso as torna ideais para atualizar várias linhas de uma só vez.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Este código atualiza de forma eficiente a descrição de todos os produtos com preço inferior a $500 em uma única operação. Atualizações em lote são mais rápidas e economizam memória em comparação com a atualização individual de registros.
Swipe to start coding
- Recuperar todos os produtos do banco de dados.
- Calcular o novo preço para cada produto, reduzindo-o em 20%.
- Salvar os preços atualizados no banco de dados.
Solução
Obrigado pelo seu feedback!
single