Files
shanxia2.0/docs/sql/20260621_bx_reimburse_apply_reimburse_date.sql
T
2026-06-21 09:19:07 +08:00

24 lines
1.0 KiB
SQL

-- 报销申请单:报销日期 + 标题序号(同日报销日期下序号唯一,支持高并发)
-- 兼容 MySQL 5.7(不支持 DEFAULT (CURRENT_DATE) 表达式默认值)
ALTER TABLE `bx_reimburse_apply`
ADD COLUMN `reimburse_date` date NULL COMMENT '报销日期' AFTER `title`,
ADD COLUMN `title_seq` int(11) DEFAULT NULL COMMENT '标题序号(同租户同报销日期下自增,自动生成标题时使用)' AFTER `reimburse_date`;
UPDATE `bx_reimburse_apply`
SET `reimburse_date` = DATE(`create_time`)
WHERE `reimburse_date` IS NULL;
ALTER TABLE `bx_reimburse_apply`
MODIFY COLUMN `reimburse_date` date NOT NULL COMMENT '报销日期';
UPDATE `bx_reimburse_apply`
SET `title_seq` = CAST(RIGHT(`title`, 3) AS UNSIGNED)
WHERE `title_seq` IS NULL
AND `title` REGEXP '报销单[0-9]{11}$'
AND RIGHT(`title`, 3) REGEXP '^[0-9]{3}$';
ALTER TABLE `bx_reimburse_apply`
ADD UNIQUE KEY `uk_tenant_reimburse_date_title_seq` (`tenant_no`, `reimburse_date`, `title_seq`),
ADD KEY `idx_reimburse_date` (`reimburse_date`);