-- 全面修复xq_client_log表字段长度问题
-- 解决Data truncation错误

-- 1. 检查当前字段长度
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH,
    NUMERIC_PRECISION,
    NUMERIC_SCALE,
    IS_NULLABLE,
    COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'xq_client_log'
ORDER BY ORDINAL_POSITION;

-- 2. 修改所有可能超长的字段
-- latitude字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN latitude VARCHAR(100) DEFAULT NULL COMMENT '纬度';

-- longitude字段 - 扩展长度  
ALTER TABLE xq_client_log MODIFY COLUMN longitude VARCHAR(100) DEFAULT NULL COMMENT '经度';

-- device_voltage字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN device_voltage VARCHAR(100) DEFAULT NULL COMMENT '设备电量';

-- device_temp字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN device_temp VARCHAR(100) DEFAULT NULL COMMENT '设备温度';

-- server_device_id字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN server_device_id VARCHAR(100) DEFAULT NULL COMMENT '主机设备ID';

-- walk_steps字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN walk_steps BIGINT(20) DEFAULT NULL COMMENT '总步数';

-- y_walk_steps字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN y_walk_steps BIGINT(20) DEFAULT NULL COMMENT '昨日总步数';

-- create_time字段 - 确保正确类型
ALTER TABLE xq_client_log MODIFY COLUMN create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';

-- update_time字段 - 确保正确类型
ALTER TABLE xq_client_log MODIFY COLUMN update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';

-- create_by字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN create_by VARCHAR(100) DEFAULT NULL COMMENT '创建人';

-- update_by字段 - 扩展长度
ALTER TABLE xq_client_log MODIFY COLUMN update_by VARCHAR(100) DEFAULT NULL COMMENT '更新人';

-- 3. 显示修改后的表结构
DESCRIBE xq_client_log;

-- 4. 验证修改结果
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH,
    NUMERIC_PRECISION,
    NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'xq_client_log'
AND COLUMN_NAME IN ('latitude', 'longitude', 'device_voltage', 'device_temp', 'server_device_id', 'walk_steps', 'y_walk_steps');
