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

