-- ============================================================================== -- RailwaySystem 数据库 V2 增量脚本: 022_add_accommodation_lock_result.sql -- 目标: 为 train_accommodation 增加 lock_result (门锁授权结果) -- 1. 新增列 lock_result SMALLINT NOT NULL DEFAULT 1 -- 取值: 1 未授权 / 2 已授权 / 3 已过期,默认 1(未授权) -- 2. 新增字典类型 train_accommodation_lock_result 及其 3 个字典项 -- 适用数据库: KingbaseES V009R003C018 / PostgreSQL (schema: public) -- 幂等性: ADD COLUMN IF NOT EXISTS + NOT EXISTS 判断,可重复执行 -- 说明: 仅新增列、列注释与字典数据,不涉及数据约束变更与业务逻辑调整 -- ============================================================================== BEGIN; -- 1. 新增门锁授权结果列 ALTER TABLE public.train_accommodation ADD COLUMN IF NOT EXISTS lock_result SMALLINT NOT NULL DEFAULT 1; COMMENT ON COLUMN public.train_accommodation.lock_result IS '门锁授权结果 (1:未授权, 2:已授权, 3:已过期)'; -- 2. 字典类型 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '住宿门锁授权结果', 'train_accommodation_lock_result', '0', 'admin', CURRENT_TIMESTAMP, '住宿记录请求门锁接口的授权结果 (1 未授权, 2 已授权, 3 已过期)' WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'train_accommodation_lock_result'); -- 3. 字典项 INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, list_class, is_default, status, create_by, create_time, remark) SELECT 1, '未授权', '1', 'train_accommodation_lock_result', 'info', 'Y', '0', 'admin', CURRENT_TIMESTAMP, '尚未取得门锁授权' WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'train_accommodation_lock_result' AND dict_value = '1'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, list_class, is_default, status, create_by, create_time, remark) SELECT 2, '已授权', '2', 'train_accommodation_lock_result', 'success', 'N', '0', 'admin', CURRENT_TIMESTAMP, '门锁接口已返回授权成功' WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'train_accommodation_lock_result' AND dict_value = '2'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, list_class, is_default, status, create_by, create_time, remark) SELECT 3, '已过期', '3', 'train_accommodation_lock_result', 'warning', 'N', '0', 'admin', CURRENT_TIMESTAMP, '授权已到期失效' WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'train_accommodation_lock_result' AND dict_value = '3'); COMMIT; -- ============================================================================== -- 核对语句(可选,只读): -- SELECT column_name, data_type, column_default, is_nullable -- FROM information_schema.columns -- WHERE table_name = 'train_accommodation' AND column_name = 'lock_result'; -- SELECT dict_code, dict_label, dict_value, list_class, is_default -- FROM sys_dict_data WHERE dict_type = 'train_accommodation_lock_result' -- ORDER BY dict_sort; -- ==============================================================================