完善招聘信息主键关联与工作经历维护
This commit is contained in:
@@ -1046,6 +1046,7 @@ DROP TABLE IF EXISTS `ccdi_staff_recruitment`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!50503 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `ccdi_staff_recruitment` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`recruit_id` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '招聘项目编号',
|
||||
`recruit_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '招聘项目名称',
|
||||
`pos_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '职位名称',
|
||||
@@ -1067,7 +1068,8 @@ CREATE TABLE `ccdi_staff_recruitment` (
|
||||
`updated_by` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '记录更新人',
|
||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`recruit_id`),
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_staff_recruitment_recruit_id` (`recruit_id`),
|
||||
KEY `idx_cand_id` (`cand_id`),
|
||||
KEY `idx_admit_status` (`admit_status`),
|
||||
KEY `idx_interviewer_id1` (`interviewer_id1`)
|
||||
@@ -1083,6 +1085,7 @@ DROP TABLE IF EXISTS `ccdi_staff_recruitment_work`;
|
||||
/*!50503 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `ccdi_staff_recruitment_work` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`recruitment_id` bigint(20) NOT NULL COMMENT '关联招聘信息主键ID',
|
||||
`recruit_id` varchar(32) NOT NULL COMMENT '关联招聘记录编号',
|
||||
`sort_order` int(11) NOT NULL DEFAULT '1' COMMENT '排序号,1 表示最近一段经历',
|
||||
`company_name` varchar(200) NOT NULL COMMENT '工作单位',
|
||||
@@ -1098,6 +1101,8 @@ CREATE TABLE `ccdi_staff_recruitment_work` (
|
||||
`updated_by` varchar(20) DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_recruitment_id` (`recruitment_id`),
|
||||
KEY `idx_recruitment_id_sort_order` (`recruitment_id`,`sort_order`),
|
||||
KEY `idx_recruit_id` (`recruit_id`),
|
||||
KEY `idx_recruit_id_sort_order` (`recruit_id`,`sort_order`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='招聘信息历史工作经历表';
|
||||
|
||||
12
sql/migration/2026-05-07-add-staff-recruitment-auto-id.sql
Normal file
12
sql/migration/2026-05-07-add-staff-recruitment-auto-id.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
-- 招聘信息主表增加自增主键ID
|
||||
-- 1. recruit_id 从物理主键调整为普通业务编号,允许重复。
|
||||
-- 2. 新增 id 作为 ccdi_staff_recruitment 的自增主键。
|
||||
|
||||
ALTER TABLE `ccdi_staff_recruitment`
|
||||
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
|
||||
ALTER TABLE `ccdi_staff_recruitment`
|
||||
DROP PRIMARY KEY,
|
||||
ADD COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID' FIRST,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `idx_staff_recruitment_recruit_id` (`recruit_id`);
|
||||
@@ -0,0 +1,89 @@
|
||||
-- 招聘信息允许招聘项目编号重复
|
||||
-- 1. 移除 ccdi_staff_recruitment.recruit_id 唯一索引,保留普通查询索引。
|
||||
-- 2. ccdi_staff_recruitment_work 增加 recruitment_id,改为关联招聘信息自增主键。
|
||||
|
||||
SET @schema_name = DATABASE();
|
||||
|
||||
SET @drop_unique_sql = (
|
||||
SELECT IF(
|
||||
COUNT(1) > 0,
|
||||
'ALTER TABLE `ccdi_staff_recruitment` DROP INDEX `uk_staff_recruitment_recruit_id`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = @schema_name
|
||||
AND table_name = 'ccdi_staff_recruitment'
|
||||
AND index_name = 'uk_staff_recruitment_recruit_id'
|
||||
);
|
||||
PREPARE stmt FROM @drop_unique_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @add_recruit_id_index_sql = (
|
||||
SELECT IF(
|
||||
COUNT(1) = 0,
|
||||
'ALTER TABLE `ccdi_staff_recruitment` ADD KEY `idx_staff_recruitment_recruit_id` (`recruit_id`)',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = @schema_name
|
||||
AND table_name = 'ccdi_staff_recruitment'
|
||||
AND index_name = 'idx_staff_recruitment_recruit_id'
|
||||
);
|
||||
PREPARE stmt FROM @add_recruit_id_index_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @add_work_recruitment_id_sql = (
|
||||
SELECT IF(
|
||||
COUNT(1) = 0,
|
||||
'ALTER TABLE `ccdi_staff_recruitment_work` ADD COLUMN `recruitment_id` BIGINT NULL COMMENT ''关联招聘信息主键ID'' AFTER `id`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @schema_name
|
||||
AND table_name = 'ccdi_staff_recruitment_work'
|
||||
AND column_name = 'recruitment_id'
|
||||
);
|
||||
PREPARE stmt FROM @add_work_recruitment_id_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
UPDATE `ccdi_staff_recruitment_work` w
|
||||
JOIN `ccdi_staff_recruitment` r
|
||||
ON w.`recruit_id` COLLATE utf8mb4_general_ci = r.`recruit_id` COLLATE utf8mb4_general_ci
|
||||
SET w.`recruitment_id` = r.`id`
|
||||
WHERE w.`recruitment_id` IS NULL;
|
||||
|
||||
ALTER TABLE `ccdi_staff_recruitment_work`
|
||||
MODIFY COLUMN `recruitment_id` BIGINT NOT NULL COMMENT '关联招聘信息主键ID';
|
||||
|
||||
SET @add_work_recruitment_id_index_sql = (
|
||||
SELECT IF(
|
||||
COUNT(1) = 0,
|
||||
'ALTER TABLE `ccdi_staff_recruitment_work` ADD KEY `idx_recruitment_id` (`recruitment_id`)',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = @schema_name
|
||||
AND table_name = 'ccdi_staff_recruitment_work'
|
||||
AND index_name = 'idx_recruitment_id'
|
||||
);
|
||||
PREPARE stmt FROM @add_work_recruitment_id_index_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @add_work_recruitment_sort_index_sql = (
|
||||
SELECT IF(
|
||||
COUNT(1) = 0,
|
||||
'ALTER TABLE `ccdi_staff_recruitment_work` ADD KEY `idx_recruitment_id_sort_order` (`recruitment_id`, `sort_order`)',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = @schema_name
|
||||
AND table_name = 'ccdi_staff_recruitment_work'
|
||||
AND index_name = 'idx_recruitment_id_sort_order'
|
||||
);
|
||||
PREPARE stmt FROM @add_work_recruitment_sort_index_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
Reference in New Issue
Block a user