mysql重复数据更新,不重复则插入

    insert into racing_ball(rounds, time, home_team, home_team_goal, home_team_goal_lost, 
    home_ranking, score,guest_team, guest_team_goal, guest_team_goal_lost, guest_ranking,
    court_all,court_half,court_all_size,court_half_size,score_half
    )
    VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
    ON DUPLICATE KEY UPDATE home_team_goal=VALUES(home_team_goal),
    home_team_goal_lost=VALUES(home_team_goal_lost), 
    home_ranking=VALUES(home_ranking),
    guest_team_goal=VALUES(guest_team_goal),
    guest_team_goal_lost=VALUES(guest_team_goal_lost), 
    guest_ranking=VALUES(guest_ranking),
    score_half=VALUES(score_half)

当主键time(我设定为时间戳)重复时就更新后面制定的数据,如果不重复则插入数据。此语句仅用于MySQL。
python源码

 def insert_date(self, rounds, date_time, home_team, home_team_goal, home_team_goal_lost, home_ranking, score,
                    guest_team, guest_team_goal, guest_team_goal_lost, guest_ranking, court_all, court_half,
                    court_all_size, court_half_size, score_half):
        db = pymysql.connect(host=self.host, user=self.user, password=self.passwd, port=self.port, db=self.db)
        cursor = db.cursor()
        insert_sql = """
                            insert into racing_ball(rounds, time, home_team, home_team_goal, home_team_goal_lost, 
                            home_ranking, score,guest_team, guest_team_goal, guest_team_goal_lost, guest_ranking,
                                court_all,court_half,court_all_size,court_half_size,score_half
                              )
                            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
                            ON DUPLICATE KEY UPDATE home_team_goal=VALUES(home_team_goal),
                            home_team_goal_lost=VALUES(home_team_goal_lost), home_ranking=VALUES(home_ranking),
                            score=VALUES(score), guest_team_goal=VALUES(guest_team_goal),
                            guest_team_goal_lost=VALUES(guest_team_goal_lost), guest_ranking=VALUES(guest_ranking),
                            score_half=VALUES(score_half)
                        """
        try:
            cursor.execute(insert_sql,
                           (rounds, date_time, home_team, home_team_goal, home_team_goal_lost, home_ranking, score,
                            guest_team, guest_team_goal, guest_team_goal_lost, guest_ranking, court_all, court_half,
                            court_all_size, court_half_size, score_half))
            db.commit()
        except Exception as e:
            print('Error is ' + str(e))
            db.rollback()
        db.close()

调用方法

self.db.insert_date(
                rounds=i + 1,
                date_time=times,
                home_team=data[4],
                home_team_goal=goal1,
                home_team_goal_lost=goal2,
                home_ranking=data[8],
                score=data[6],
                guest_team=data[5],
                guest_team_goal=goal2,
                guest_team_goal_lost=goal1,
                guest_ranking=data[9],
                court_all=float(data[10]),
                court_half=float(data[11]),
                court_all_size=data[12],
                court_half_size=data[13],
                score_half=data[7]
            )

猜你喜欢

转载自blog.csdn.net/weixin_40327641/article/details/81665469