我有一个PostgreSql表,我想在其中更新时间戳类型的属性与时区(我也尝试没有时间戳,但它不起作用)。我使用SqlAlchemy session来实现这个目的。
我获取一个现有的记录,并更新它与当前时间戳:
from model import Table
from dbconf import session
t=session.query(Table).filter(Table.id==1).first()
t.available=datetime.now()
session.add(t)
session.commit()
执行此命令后,数据库中没有任何变化。我做错了什么?
我可以假设你有这个表的模型,你应该添加新的更新方法,像这样:
class table(Base):
__tablename__ = 'table'
id = Column(Integer, primary_key=True)
available = Column(DateTime)
asd = Column(Unicode(255))
def update(self, available=None, asd = None): #etc.
if available:
self.available = available
if asd:
self.asd = asd
,然后像这样更新:
import transaction
with transaction.manager:
t=session.query(Table).filter(Table.id==1).first() #search the object what you want to update
t.update(available=datetime.now()) #you can update only one or several cell like this