进行了 GVSDSDK 迁移,可能存在诸多问题
This commit is contained in:
69
check_sql_structure.py
Normal file
69
check_sql_structure.py
Normal file
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python3
|
||||
"""检查 user_dashou 中有 user_id 的记录"""
|
||||
import re
|
||||
|
||||
with open('xaio_cheng_xu_backup.sql', 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
pattern = re.compile(r"INSERT\s+INTO\s+`user_dashou`\s+VALUES\s*\((.+?)\)\s*;", re.IGNORECASE | re.DOTALL)
|
||||
matches = list(pattern.finditer(content))
|
||||
|
||||
# 找有 user_id 的记录
|
||||
has_uid = 0
|
||||
no_uid = 0
|
||||
uid_values = []
|
||||
for m in matches:
|
||||
v = m.group(1).rstrip()
|
||||
if v.endswith('NULL'):
|
||||
no_uid += 1
|
||||
else:
|
||||
has_uid += 1
|
||||
# 提取最后一个值(user_id)
|
||||
last_comma = v.rfind(',')
|
||||
uid_val = v[last_comma+1:].strip()
|
||||
uid_values.append(uid_val)
|
||||
|
||||
print(f"有 user_id: {has_uid}, 无 user_id: {no_uid}")
|
||||
print(f"user_id 值样本: {uid_values[:10]}")
|
||||
|
||||
# 检查 user_main 中这些 user_id 是否存在
|
||||
# user_main 的 id 字段是 vals[1]
|
||||
main_pattern = re.compile(r"INSERT\s+INTO\s+`user_main`\s+VALUES\s*\((.+?)\)\s*;", re.IGNORECASE | re.DOTALL)
|
||||
main_ids = set()
|
||||
for m in main_pattern.finditer(content):
|
||||
# 简单提取第二个字段 (id)
|
||||
v = m.group(1)
|
||||
# 找前几个逗号
|
||||
in_q = False
|
||||
commas = []
|
||||
for i, ch in enumerate(v):
|
||||
if ch == "'": in_q = not in_q
|
||||
elif ch == ',' and not in_q:
|
||||
commas.append(i)
|
||||
if len(commas) >= 2: break
|
||||
if len(commas) >= 2:
|
||||
id_val = v[commas[0]+1:commas[1]].strip()
|
||||
main_ids.add(id_val)
|
||||
|
||||
print(f"\nuser_main id 范围: {len(main_ids)} 个")
|
||||
matched = sum(1 for uid in uid_values if uid in main_ids)
|
||||
print(f"user_dashou user_id 匹配 user_main: {matched}/{len(uid_values)}")
|
||||
|
||||
# 也检查 user_type 分布
|
||||
type_pattern = re.compile(r"INSERT\s+INTO\s+`user_main`\s+VALUES\s*\((.+?)\)\s*;", re.IGNORECASE | re.DOTALL)
|
||||
type_counts = {}
|
||||
for m in type_pattern.finditer(content):
|
||||
v = m.group(1)
|
||||
# 找第12个字段 (user_type, index 11)
|
||||
in_q = False
|
||||
commas = []
|
||||
for i, ch in enumerate(v):
|
||||
if ch == "'": in_q = not in_q
|
||||
elif ch == ',' and not in_q:
|
||||
commas.append(i)
|
||||
if len(commas) >= 12: break
|
||||
if len(commas) >= 12:
|
||||
type_val = v[commas[10]+1:commas[11]].strip().strip("'")
|
||||
type_counts[type_val] = type_counts.get(type_val, 0) + 1
|
||||
|
||||
print(f"\nuser_type 分布: {type_counts}")
|
||||
Reference in New Issue
Block a user