1 parent
f583bb5932
commit
d9a4383cd1
2 files changed
+121
-1
No files matched your search
@@ -0,0 +1,63 @@
|
||||
-- =============================================================================
|
||||
-- IT-7 叫乘记录三时间字段(可重放)
|
||||
-- 依据:叫乘任务要求「每条记录包含 叫乘时间 / 复叫时间 / 应离寓时间」,
|
||||
-- 到点分别触发:首轮呼叫、自动复叫、离寓报警。
|
||||
-- 口径:
|
||||
-- 1) jcsj 已存在(叫乘时间,权威);本次只补 fjsj(复叫时间,计划)与
|
||||
-- ylysj(应离寓时间);
|
||||
-- 2) fjsj 与既有 fjsj_s 分工:fjsj=计划复叫时间(到点判定),
|
||||
-- fjsj_s=实际复叫时刻(执行留痕,防重复触发);
|
||||
-- 3) ryzt / finish_jc / finish_ly / stoped 仍只有 apt.duty.state 一个写入口,
|
||||
-- 本脚本不写任何业务数据;
|
||||
-- 4) 幂等:补列走 apt_add_column_if_missing,索引先查 information_schema。
|
||||
-- =============================================================================
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1. gy_jcxx 三时间字段补齐
|
||||
-- -----------------------------------------------------------------------------
|
||||
CALL apt_add_column_if_missing('gy_jcxx', 'fjsj',
|
||||
"fjsj DATETIME(3) NULL COMMENT '复叫时间(计划;到点自动复叫)'");
|
||||
|
||||
CALL apt_add_column_if_missing('gy_jcxx', 'ylysj',
|
||||
"ylysj DATETIME(3) NULL COMMENT '应离寓时间(到点未离寓转离寓报警)'");
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2. 到点扫描索引(复叫到点 + 应离寓超时)
|
||||
-- -----------------------------------------------------------------------------
|
||||
SET @apt_idx_fjsj = (SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
|
||||
AND INDEX_NAME = 'idx_jcxx_fjsj');
|
||||
SET @apt_sql_fjsj = IF(@apt_idx_fjsj = 0,
|
||||
'ALTER TABLE gy_jcxx ADD KEY idx_jcxx_fjsj (gyid, fjsj)',
|
||||
'SELECT 1');
|
||||
PREPARE apt_stmt_fjsj FROM @apt_sql_fjsj;
|
||||
EXECUTE apt_stmt_fjsj;
|
||||
DEALLOCATE PREPARE apt_stmt_fjsj;
|
||||
|
||||
SET @apt_idx_ylysj = (SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
|
||||
AND INDEX_NAME = 'idx_jcxx_ylysj');
|
||||
SET @apt_sql_ylysj = IF(@apt_idx_ylysj = 0,
|
||||
'ALTER TABLE gy_jcxx ADD KEY idx_jcxx_ylysj (gyid, ylysj)',
|
||||
'SELECT 1');
|
||||
PREPARE apt_stmt_ylysj FROM @apt_sql_ylysj;
|
||||
EXECUTE apt_stmt_ylysj;
|
||||
DEALLOCATE PREPARE apt_stmt_ylysj;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3. 校验
|
||||
-- -----------------------------------------------------------------------------
|
||||
SELECT '=== IT-7 gy_jcxx 三时间字段(应 3:jcsj / fjsj / ylysj)===' AS section;
|
||||
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
|
||||
AND COLUMN_NAME IN ('jcsj','fjsj','ylysj')
|
||||
ORDER BY COLUMN_NAME;
|
||||
|
||||
SELECT '=== IT-7 到点扫描索引(应 2)===' AS section;
|
||||
SELECT TABLE_NAME, INDEX_NAME, GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) AS cols
|
||||
FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND INDEX_NAME IN ('idx_jcxx_fjsj','idx_jcxx_ylysj')
|
||||
GROUP BY TABLE_NAME, INDEX_NAME;
|
||||
Reference in new issue
Block a user