diff --git a/src/blackboard/db.py b/src/blackboard/db.py index b2a77c6..6433b2c 100644 --- a/src/blackboard/db.py +++ b/src/blackboard/db.py @@ -96,20 +96,14 @@ def _batch_update_card_id(conn: sqlite3.Connection, table: str, card_id: str, batch_size: int = 500) -> None: """分批更新 card_id,避免大表长时间锁""" while True: - conn.execute( + cursor = conn.execute( f"UPDATE {table} SET card_id=? WHERE rowid IN (" f"SELECT rowid FROM {table} WHERE card_id IS NULL LIMIT {batch_size})", (card_id,), ) - if conn.total_changes == 0: + if cursor.rowcount == 0: break conn.commit() - # 检查是否还有剩余 - row = conn.execute( - f"SELECT COUNT(*) as cnt FROM {table} WHERE card_id IS NULL" - ).fetchone() - if not row or row["cnt"] == 0: - break def _safe_add_column(conn: sqlite3.Connection, table: str,