| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- -- =============================================================================
- -- questions 与 questions_tem 除 id 外结构一致时:从 tem 插入 questions
- --
- -- 说明:
- -- · id 不拷贝,由 questions 自增。
- -- · question_code 在 questions 上唯一:下面用新码避免与已有行冲突。
- -- 若你确认 tem 的 question_code 与 questions 绝不重复,可把 SELECT 里第一列改成 t.question_code。
- -- · 其余列与 tem 一一对应(结构完全一致时可直接照抄)。
- -- · 去重:与业务一致,同 kp_code + stem 已在 questions 存在则跳过。
- --
- -- 执行前备份;建议先 START TRANSACTION,核对行数后再 COMMIT。
- -- 需要 MySQL 8+(UUID())。
- -- =============================================================================
- START TRANSACTION;
- INSERT INTO `questions` (
- `question_code`,
- `kp_id`,
- `textbook_catalog_nodes_id`,
- `stem`,
- `options`,
- `answer`,
- `solution`,
- `difficulty`,
- `question_category`,
- `source`,
- `tags`,
- `question_type`,
- `source_file_id`,
- `source_paper_id`,
- `paper_part_id`,
- `textbook_id`,
- `meta`,
- `created_at`,
- `updated_at`,
- `audit_status`,
- `audit_reason`,
- `title_1`,
- `title_2`,
- `title_3`,
- `create_by`,
- `kp_code`,
- `kp_name`,
- `kp_reference`,
- `grade`,
- `step_num`,
- `solution_temp`,
- `solution_temp2`
- )
- SELECT
- CONCAT('QT', UPPER(SUBSTRING(REPLACE(UUID(), '-', ''), 1, 12))) AS `question_code`,
- t.`kp_id`,
- t.`textbook_catalog_nodes_id`,
- t.`stem`,
- t.`options`,
- t.`answer`,
- t.`solution`,
- t.`difficulty`,
- t.`question_category`,
- t.`source`,
- t.`tags`,
- t.`question_type`,
- t.`source_file_id`,
- t.`source_paper_id`,
- t.`paper_part_id`,
- t.`textbook_id`,
- t.`meta`,
- t.`created_at`,
- t.`updated_at`,
- t.`audit_status`,
- t.`audit_reason`,
- t.`title_1`,
- t.`title_2`,
- t.`title_3`,
- t.`create_by`,
- t.`kp_code`,
- t.`kp_name`,
- t.`kp_reference`,
- t.`grade`,
- t.`step_num`,
- t.`solution_temp`,
- t.`solution_temp2`
- FROM `questions_tem` AS t
- WHERE
- t.`kp_code` IS NOT NULL
- AND TRIM(t.`kp_code`) <> ''
- AND t.`stem` IS NOT NULL
- AND TRIM(t.`stem`) <> ''
- AND NOT EXISTS (
- SELECT 1
- FROM `questions` AS q
- WHERE q.`kp_code` = t.`kp_code`
- AND q.`stem` = t.`stem`
- );
- COMMIT;
- -- -----------------------------------------------------------------------------
- -- 若两表列名/顺序有出入,可先查出 questions 除 id 外的列名再改 INSERT/SELECT:
- -- SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
- -- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'questions' AND COLUMN_NAME <> 'id'
- -- ORDER BY ORDINAL_POSITION;
- -- -----------------------------------------------------------------------------
- -- 仅复制部分 tem 行:在 WHERE 末尾增加 AND t.id IN (1,2,3);
|