SQLAlchemy数据库插入数据,默认值不更新

SQLAlchemy数据库插入数据,默认值不更新

问题描述: 通过sqlAlchemy进行数据库插入操作,某个字段设置了默认值,但是进行插入时,默认值每次插入的值都一样,不进行更新。

一、问题代码

这里的id和create_time的值都是以值的方式的来表示的,将函数值赋值给了默认值。所以在每次调用时,默认值就变成了常量于是就不会进行更新。

id = Column(String(50), nullable=False, primary_key=True, default=uuid.uuid4())
creat_time = Column(DateTime, nullable=True, default=datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S"))
update_time = Column(DateTime, nullable=True, default=datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S"))
deleted = Column(Integer, nullable=False, default=0)
remarks = Column(String(100), nullable=True)
二、修改代码
  1. 对于id的默认值赋值,我可以直接吧括号去掉,这样就把默认值设置为了一个uuid函数,这个函数返回的是uuid值,他每次都是变化的。
  2. 对于create_time默认值赋值,我们需要创建一个函数来进行赋值,函数返回当前时间。将默认值设置为该函数。
# 当前时间函数
def get_datetime():
    return datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S")

id = Column(String(50), nullable=False, primary_key=True, default=uuid.uuid4)
creat_time = Column(DateTime, nullable=True, default=get_datetime)
update_time = Column(DateTime, nullable=True, default=get_datetime)
deleted = Column(Integer, nullable=False, default=0)
remarks = Column(String(100), nullable=True)
三、结果查看

修改后,进行数据插入,可以看到插入结果对应各列的默认值都是不同的了。
在这里插入图片描述

以上,如果大家有什么其他方法或者修改建议欢迎评论留言~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值