-- ============================================= -- 售后退货申请:支持客户名称文本输入(不关联客户档案) -- -- 变更:after_sale_return 增加 customer_name 列 -- customer_id 保持可选(未关联客户档案时为 NULL) -- 脚本可重复执行(幂等) -- ============================================= SET NAMES utf8mb4; SET @sch := DATABASE(); SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'after_sale_return' AND COLUMN_NAME = 'customer_name'); SET @sql := IF(@exists = 0, 'ALTER TABLE `after_sale_return` ADD COLUMN `customer_name` varchar(200) DEFAULT NULL COMMENT ''客户名称(文本)'' AFTER `customer_id`', 'SELECT ''customer_name 已存在,跳过'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 客户编号改为可空(支持只填客户名称、不关联客户档案) ALTER TABLE `after_sale_return` MODIFY COLUMN `customer_id` bigint DEFAULT NULL COMMENT '客户编号(可空)'; -- 核对 SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'after_sale_return' AND COLUMN_NAME = 'customer_name'; SELECT '退货申请客户名称字段初始化完成' AS result;