MySQL`INSERT`,其默认值为DateTime类型值,但使用sqlalchemy获得NULL

问题描述

我使用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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...