我有一个PostgreSql表,我想用时区更新timestamp类型的属性(我也试过没有时间戳,但它不起作用)。我为此目的使用了SqlAlchemy会话。
我获取现有记录,并使用当前时间戳更新它:
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()
在此命令之后,数据库中没有任何更改。我做错了什么?
答案 0 :(得分:3)
我可以假设你有这个表的模型,你应该添加这样的新更新方法:
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