That's a cool idea, but it would need to reference the instance we've 
created to use the `id` atribute.

ie the sql would be `select max(version)+1 from responses where id = :id`

On Friday, 18 November 2016 14:39:52 UTC, Mike Bayer wrote:
>
>
>
> On 11/18/2016 09:10 AM, Alexander O'Donovan-Jones wrote: 
> > I'm currently working on using the ORM features of sqlalchemy with a 
> > legacy database table. The table can be roughly described like this: 
> > 
> >     class APIResponse(Base): 
> >         __tablename__ = 'responses' 
> >         id = Column(Text, primary_key=True) 
> >         version = Column(Integer, primary_key=True) 
> >         payload = Column(JSONB, nullable=False) 
> >         created_at = Column(DateTime, nullable=False) 
> > 
> > 
> > The table stores JSON payloads where the primary key is determined by 
> > the combination of the id and version columns (as a composite primary 
> > key). What I'm trying to work out is whether it's possible to have the 
> > value of the version column be the result of 
> > func.max(APIResponse.version) + 1, that is, MAX()+1 to increment the 
> > version. 
> > 
> > This is running on Postgresql, and so I took a look at the sequence 
> > support, but that appears to be a table wide sequence, and not keyed off 
> > a value (ie: I couldn't have 10000 id's each mapping to a sequence to 
> > generate versions). 
>
>
> you can set any SQL expression you want for a default, some examples at 
> https://docs.sqlalchemy.org/en/latest/core/defaults.html#sql-expressions. 
>    This would look like default=select([func.max(API.response.version) + 
> 1]).   hope that helps. 
>
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to