Files
cattleTransportation/tradeCattle/batch_insert_debug.sql
2025-10-24 17:32:42 +08:00

90 lines
2.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ====================================
-- 模拟批量插入过程调试
-- ====================================
-- 1. 清空xq_client_log表
TRUNCATE TABLE xq_client_log;
-- 2. 检查项圈设备数据模拟convertToCollarLog方法的处理逻辑
SELECT
device_id,
latitude,
longitude,
voltage,
temperature,
steps,
same_day_steps,
CASE
WHEN latitude = '0' OR latitude IS NULL OR latitude = '' THEN 'INVALID_LAT'
ELSE 'VALID_LAT'
END as lat_status,
CASE
WHEN longitude = '0' OR longitude IS NULL OR longitude = '' THEN 'INVALID_LNG'
ELSE 'VALID_LNG'
END as lng_status,
CASE
WHEN (latitude = '0' OR latitude IS NULL OR latitude = '')
AND (longitude = '0' OR longitude IS NULL OR longitude = '') THEN 'SKIP'
ELSE 'PROCESS'
END as process_status
FROM iot_device_data
WHERE device_type = 4
ORDER BY update_time DESC;
-- 3. 尝试批量插入有效的数据(模拟批量插入)
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,
NULL as server_device_id,
latitude,
longitude,
steps as walk_steps,
same_day_steps as y_walk_steps,
NOW() as create_time,
'BATCH_TEST' as create_by,
NOW() as update_time,
'BATCH_TEST' as update_by
FROM iot_device_data
WHERE device_type = 4
AND latitude != '0'
AND longitude != '0'
AND latitude IS NOT NULL
AND longitude IS NOT NULL
AND latitude != ''
AND longitude != '';
-- 4. 检查批量插入结果
SELECT COUNT(*) as '批量插入记录数' FROM xq_client_log WHERE create_by = 'BATCH_TEST';
-- 5. 查看插入的数据
SELECT
device_id,
latitude,
longitude,
device_voltage,
device_temp,
walk_steps,
y_walk_steps,
create_time
FROM xq_client_log
WHERE create_by = 'BATCH_TEST'
ORDER BY create_time DESC;
-- 6. 清理测试数据
DELETE FROM xq_client_log WHERE create_by = 'BATCH_TEST';