Paramètre valeur par défaut dans sqlalchemy
je voudrais définir une valeur par défaut de colonne qui est basée sur une autre table dans mon modèle SQLAlchemy.
Actuellement j'ai ceci:
Column('version', Integer, default=1)
Ce dont j'ai besoin est (en gros):
Column('version', Integer, default="SELECT MAX(1, MAX(old_versions)) FROM version_table")
Comment puis-je implémenter ceci dans SQLAlchemy?
27
demandé sur
Chris R
2012-03-14 20:34:15
2 réponses
documentation donne les possibilités suivantes pour default
:
Un scalaire, Python appelable, ou ClauseElement représentant la valeur par défaut la valeur de cette colonne, qui sera invoquée lors de l'insertion si ce la colonne n'est pas spécifiée dans la clause valeurs de l'insert.
vous pouvez chercher à utiliser une fonction simple, ou vous pouvez juste être en mesure d'utiliser un select()
objet.
Dans votre cas, peut-être quelque chose le long des lignes de:
from sqlalchemy.sql import select, func
...
Column('version', Integer, default=select([func.max(1,
func.max(version_table.c.old_versions))]))
26
répondu
voithos
2017-04-22 04:21:57
Column('version', Integer, server_default="SELECT MAX(1, MAX(old_versions)) FROM version_table")
0
répondu
markmnl
2017-10-30 03:50:59