Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment faites-vous pour que SQLAlchemy remplace MySQL lors de la mise à jour CURRENT_TIMESTAMP

SQLAlchemy n'essaie pas de définir le champ car il pense que la valeur n'a pas changé.

Vous pouvez indiquer à SQLAlchemy de réaffecter la valeur en spécifiant l'attribut onupdate sur la colonne :

 Column('timestamp', ..., onupdate=literal_column('timestamp'))

Cela entraînera l'ajout automatique de timestamp=timestamp par SQLAlchemy à toutes les requêtes de mise à jour.

Si vous avez besoin de le faire une seule fois sur une instance, vous pouvez lui affecter la colonne :

foo.timestamp = literal_column('timestamp')
# or 
foo.timestamp = foo_tbl.c.timestamp