PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Muitos para muitos em sqlalchemy. Impedindo que o SQLAlchemy seja inserido em uma tabela se uma tag já existir


para a receita "somente tags únicas" eu costumo usar a receita de objeto exclusivo, ou alguma variante dela:http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject .

Isso naturalmente requer um SELECT em uma linha específica para saber se ela existe primeiro. A técnica "upsert", usando comandos específicos do banco de dados para INSERT ou UPDATE uma linha com base em uma determinação do lado do banco de dados, não é suportada diretamente pelo ORM no momento. Você está no Postgresql de qualquer maneira, que na verdade não suporta nenhum recurso "upsert" nativo, exceto um sistema muito estranho usando expressões de tabela comuns.