90 lines
3.0 KiB
MySQL
90 lines
3.0 KiB
MySQL
|
|
-- 招聘信息允许招聘项目编号重复
|
|||
|
|
-- 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;
|