问题描述
我使用sqlalchemy操作用户表。这是一个映射类。
class User(Base):
__tablename__ = 'user'
id = Column('id',Integer,primary_key=True,autoincrement=True,nullable=False)
name = Column('name',String,nullable=True)
tel = Column('tel',nullable=True)
expiration = Column('expiration',DateTime(timezone=True),server_default=func.dateadd(func.now(),bindparam('expiration',timedelta(days=365),Interval())))
我想批量插入一些行,并返回这些id
。
class AddRows:
def __init(self,**kwargs):
self.user = User(id=kwargs.get('id'),name=kwargs.get('name'),tel=kwargs.get('tel'))
@classmethod
def inserted_id(cls,objs):
for u in objs:
session.add(u.user)
session.flush()
session.refresh(u.user)
yield str(u.user.id)
但是,在下面的代码段中,在我执行insert
操作没有错误之后,表NULL
的列expiration
中只有user
显示,与之前插入的相对应行。
u1 = {'name': 'john','tel': '1111111111'}
u2 = {'name': 'tom','tel': '2222222222'}
u3 = {'name': 'dave','tel': '33333333333'}
rows = [AddRows(**u1),AddRows(**u2),AddRows(**u3)]
ids = ','.join(id for id in AddRows.inserted_id(objs=rows))
我关注了该帖子:SQLAlchemy default DateTime。有什么建议吗?谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)