-- ========================================== -- 修复 delivery 表触发器 -- 删除引用 car_number 的触发器 -- ========================================== USE cattletrade; -- ========================================== -- 步骤 1: 查看触发器完整定义 -- ========================================== SELECT '步骤1: 查看触发器完整定义' as '执行步骤'; SHOW CREATE TRIGGER trg_delivery_fill_from_driver; -- ========================================== -- 步骤 2: 备份当前触发器定义(复制输出保存) -- ========================================== SELECT '步骤2: 已显示触发器定义,请复制保存备份' as '执行步骤'; -- ========================================== -- 步骤 3: 删除有问题的触发器 -- ========================================== SELECT '步骤3: 删除引用 car_number 的触发器' as '执行步骤'; -- 删除 INSERT 触发器 DROP TRIGGER IF EXISTS trg_delivery_fill_from_driver; -- 如果有 UPDATE 触发器也删除 DROP TRIGGER IF EXISTS trg_delivery_fill_from_driver_update; -- ========================================== -- 步骤 4: 验证触发器已删除 -- ========================================== SELECT '步骤4: 验证触发器已删除' as '执行步骤'; SHOW TRIGGERS WHERE `Table` = 'delivery'; -- ========================================== -- 步骤 5: 验证是否还有其他触发器引用 car_number -- ========================================== SELECT '步骤5: 检查是否还有其他触发器引用 car_number' as '执行步骤'; SELECT TRIGGER_NAME as '触发器名称', EVENT_MANIPULATION as '触发事件', EVENT_OBJECT_TABLE as '关联表', ACTION_STATEMENT as '触发器SQL' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA = 'cattletrade' AND ACTION_STATEMENT LIKE '%car_number%'; -- ========================================== -- 说明: -- 1. 这些触发器的作用是在插入/更新 delivery 时自动从 member_driver 获取信息 -- 2. 由于司机和车辆现在是独立模块,不再需要这种自动填充 -- 3. 车辆信息现在由 vehicle 表管理,在 DeliveryServiceImpl 中手动查询 -- 4. 删除触发器后,重启后端服务即可正常创建运送清单 -- ========================================== -- ========================================== -- 完成后请: -- 1. 清理后端 target 目录: Remove-Item -Recurse -Force tradeCattle\target -- 2. 重启后端服务 -- 3. 测试创建运送清单功能 -- ==========================================