24 lines
1.0 KiB
SQL
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`);
|