[Python] SQLAlchemy: insert o update
max a mail.studiomasson.it
massimo a mail.studiomasson.it
Mar 13 Feb 2007 00:01:31 CET
Scusate se faccio una domanda banale.
Usando l'orm di sqlalchemy qualcuno mi saprebbe dare un suggerimento su
come risolvere il problema di fargli fare automaticamente un inserimento
o un aggiornamento? Mi spiego meglio:
Creo tabelle e oggetti, legati dal "mapper". Ho la mia brava sessione.
Se creo un nuovo oggetto, poi lo salvo (una cosa tipo session.save(obj))
e poi faccio il .flush() va tutto bene se il nuovo oggetto non è
presente nel dbms (ovvero ho messo una pk realmente nuova) mentre se la
pk è già esistente mi segnala un conflitto (giusto, in quel caso dovrei
chiedere un update e non un insert).
Ovviamente se leggo un oggetto (già esistente) tramite query, lo
modifico e faccio il .flush() ottengo correttamente un update.
La domanda è semplice: esiste un modo per non dover prestabilire se si
sta lavorando su un oggetto nuovo piuttosto che su uno esistente? Mi
andrebbe bene una cosa tipo: se la pk non esiste esegui INSERT,
altrimenti UPDATE. Se gli oggetti sono nuovi e non caricati da query mi
propone sempre e solo insert...
Grazie in anticipo dei suggerimenti,
Massimo.
Maggiori informazioni sulla lista
Python