完善小细节

This commit is contained in:
xuqiuyun
2025-10-24 17:32:42 +08:00
parent ecccd025d1
commit a40ce28318
73 changed files with 7238 additions and 114 deletions

View File

@@ -0,0 +1,124 @@
-- ====================================
-- 深度调试:检查批量插入的具体问题
-- ====================================
-- 1. 检查项圈设备的详细数据
SELECT
device_id,
voltage,
temperature,
latitude,
longitude,
steps,
same_day_steps,
server_device_id,
update_time,
LENGTH(latitude) as lat_len,
LENGTH(longitude) as lng_len,
LENGTH(CAST(voltage AS CHAR)) as voltage_len,
LENGTH(CAST(temperature AS CHAR)) as temp_len,
LENGTH(server_device_id) as server_id_len,
HEX(latitude) as lat_hex,
HEX(longitude) as lng_hex
FROM iot_device_data
WHERE device_type = 4
ORDER BY update_time DESC;
-- 2. 检查是否有重复的device_id
SELECT
device_id,
COUNT(*) as count
FROM iot_device_data
WHERE device_type = 4
GROUP BY device_id
HAVING COUNT(*) > 1;
-- 3. 检查是否有NULL值
SELECT
device_id,
CASE
WHEN voltage IS NULL THEN 'voltage is NULL'
WHEN temperature IS NULL THEN 'temperature is NULL'
WHEN latitude IS NULL THEN 'latitude is NULL'
WHEN longitude IS NULL THEN 'longitude is NULL'
WHEN server_device_id IS NULL THEN 'server_device_id is NULL'
WHEN latitude = '' THEN 'latitude is empty'
WHEN longitude = '' THEN 'longitude is empty'
ELSE 'OK'
END as null_check,
voltage,
temperature,
latitude,
longitude,
server_device_id
FROM iot_device_data
WHERE device_type = 4
AND (
voltage IS NULL OR
temperature IS NULL OR
latitude IS NULL OR
longitude IS NULL OR
server_device_id IS NULL OR
latitude = '' OR
longitude = ''
);
-- 4. 检查是否有特殊字符
SELECT
device_id,
latitude,
longitude,
HEX(latitude) as lat_hex,
HEX(longitude) as lng_hex,
LENGTH(latitude) as lat_len,
LENGTH(longitude) as lng_len
FROM iot_device_data
WHERE device_type = 4
AND (
latitude LIKE '%null%' OR
longitude LIKE '%null%' OR
latitude LIKE '%NULL%' OR
longitude LIKE '%NULL%' OR
latitude LIKE '%undefined%' OR
longitude LIKE '%undefined%'
);
-- 5. 尝试手动插入所有8条数据逐条
-- 先清空表
TRUNCATE TABLE xq_client_log;
-- 插入第1条
INSERT INTO xq_client_log (
device_id, device_voltage, device_temp, server_device_id,
latitude, longitude, walk_steps, y_walk_steps,
create_time, create_by, update_time, update_by
)
SELECT
device_id,
CAST(voltage AS CHAR) as device_voltage,
CAST(temperature AS CHAR) as device_temp,
server_device_id,
latitude,
longitude,
steps as walk_steps,
same_day_steps as y_walk_steps,
NOW() as create_time,
'MANUAL_TEST' as create_by,
NOW() as update_time,
'MANUAL_TEST' as update_by
FROM iot_device_data
WHERE device_type = 4
ORDER BY update_time DESC
LIMIT 1;
-- 检查插入结果
SELECT
device_id,
device_voltage,
device_temp,
latitude,
longitude,
create_by,
create_time
FROM xq_client_log
WHERE create_by = 'MANUAL_TEST';