From 272d0156bbd203554221f14b9e80c100b8925771 Mon Sep 17 00:00:00 2001 From: "qichi.liang" Date: Mon, 29 Dec 2025 04:57:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E5=BA=93insert?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=BD=BF=E7=94=A8INSERT=20OR=20REPLACE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B7=B2=E5=AD=98=E5=9C=A8=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/database.py | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/database.py b/src/database.py index 410810c..1f822eb 100644 --- a/src/database.py +++ b/src/database.py @@ -108,31 +108,20 @@ class DailyLogsDatabase: self.conn.commit() def insert(self, log: Dict) -> bool: - """插入记录(存在则跳过,不存在则插入)""" + """插入记录(存在则替换,不存在则插入)""" try: cursor = self.conn.cursor() - # 检查是否已存在 + # 使用 INSERT OR REPLACE 来更新已存在的记录 cursor.execute(''' - SELECT id FROM daily_handover_logs - WHERE date = ? AND shift = ? AND ship_name = ? - ''', (log['date'], log['shift'], log['ship_name'])) - existing = cursor.fetchone() - - if existing: - # 记录已存在,跳过 - return False - else: - # 插入新记录 - cursor.execute(''' - INSERT INTO daily_handover_logs - (date, shift, ship_name, teu, efficiency, vehicles, created_at) - VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP) - ''', ( - log['date'], log['shift'], log['ship_name'], - log.get('teu'), log.get('efficiency'), log.get('vehicles') - )) - self.conn.commit() - return True + INSERT OR REPLACE INTO daily_handover_logs + (date, shift, ship_name, teu, efficiency, vehicles, created_at) + VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ''', ( + log['date'], log['shift'], log['ship_name'], + log.get('teu'), log.get('efficiency'), log.get('vehicles') + )) + self.conn.commit() + return True except sqlite3.Error as e: print(f"数据库错误: {e}") return False