@@ -98,7 +98,7 @@ def set_session_header(self, client_ip: str, header_create: SessionHeaderCreate)
9898
9999 # 如果没有更新任何记录,则插入新记录
100100 if cursor .rowcount == 0 :
101- db .only_execute ("""
101+ insert_cursor = db .only_execute ("""
102102 INSERT INTO session_headers
103103 (client_ip, header_name, header_value, replace_strategy, priority, is_active,
104104 expires_at, created_at, scope_config)
@@ -114,6 +114,20 @@ def set_session_header(self, client_ip: str, header_create: SessionHeaderCreate)
114114 current_time .strftime ('%Y-%m-%d %H:%M:%S' ),
115115 scope_config_json
116116 ))
117+ # 获取数据库生成的真实ID并更新内存对象
118+ if insert_cursor and insert_cursor .lastrowid :
119+ session_header .id = insert_cursor .lastrowid
120+ self ._session_headers [client_ip ][header_create .header_name ] = session_header
121+ else :
122+ # 更新时也需要获取数据库中的ID
123+ id_cursor = db .only_execute ("""
124+ SELECT id FROM session_headers WHERE client_ip = ? AND header_name = ?
125+ """ , (client_ip , header_create .header_name ))
126+ if id_cursor :
127+ row = id_cursor .fetchone ()
128+ if row :
129+ session_header .id = row [0 ]
130+ self ._session_headers [client_ip ][header_create .header_name ] = session_header
117131 logger .debug (f"Persisted session header to database for { client_ip } : { header_create .header_name } " )
118132 except Exception as db_error :
119133 logger .error (f"Failed to persist session header to database: { db_error } " )
0 commit comments