gpt4 book ai didi

mysql - 我的结果中有重复记录

转载 作者:行者123 更新时间:2023-11-29 19:58:35 30 4
gpt4 key购买 nike

我的模型定义是这样的

class UserAppWeekStatistics(db.Model):
__tablename__ = 'user_app_week_statistics'
id = db.Column(db.Integer, primary_key=True)
imei = db.Column(db.String(15), primary_key=True, index=True)
year = db.Column(db.Integer, primary_key=True,
default=int(datetime.now().strftime('%Y')), index=True)
week = db.Column(db.Integer, primary_key=True,
default=int(datetime.now().strftime('%W')), index=True)
count = db.Column(db.Integer, default=0)

def __repr__(self):
return '<UserAppWeekStatistics %r-%r-%r>' % (self.imei, self.year, self.week)

在我看来

user_app_week_statistics = UserAppWeekStatistics.query.filter_by(imei=json_req['imei'],
year=int(datetime.now().strftime('%Y')),
week=int(datetime.now().strftime('%W'))).first()
if user_app_week_statistics is None:
user_app_week_statistics = UserAppWeekStatistics()
user_app_week_statistics.imei = json_req['imei']
user_app_week_statistics.count = 1
else:
user_app_week_statistics.count += 1
db.session.add(user_app_week_statistics)
db.session.commit()

下面是在我的数据库中捕获我的结果。 enter image description here

在我看来,只有一条记录具有相同的imei、年份和星期,但在我的项目中可能有许多重复的记录具有相同的imei、年份和星期。我真的很困惑。我的数据库是mysql 5.6。

最佳答案

1) 修复你的模型,只能有 1 个 primary_key

2)不需要在每个字段上建立索引,尤其是在统计表上 - 它会使插入、更新速度变慢,因为每次数据库引擎都会重新索引。

3)添加唯一复合索引以防止重复。

最后这是您的模型:

class UserAppWeekStatistics(db.Model):
__tablename__ = 'user_app_week_statistics'
id = db.Column(db.Integer, primary_key=True)
imei = db.Column(db.String(15), index=True)
year = db.Column(db.Integer, default=int(datetime.now().strftime('%Y')))
week = db.Column(db.Integer, default=int(datetime.now().strftime('%W')))
count = db.Column(db.Integer, default=0)

# add this
__table_args__ = db.UniqueConstraint('imei', 'year', 'week', name='uq_user_app_week_statistics_imei_year_week')

def __repr__(self):
return '<UserAppWeekStatistics %r-%r-%r>' % (self.imei, self.year, self.week)

关于mysql - 我的结果中有重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608905/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com