Files
cattleTransportation/tradeCattle/fix_delivery_triggers.sql
2025-10-29 17:33:32 +08:00

67 lines
2.5 KiB
SQL

-- ==========================================
-- 修复 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. 测试创建运送清单功能
-- ==========================================