Files
prop-ai-hr/backend/script/sql/update/aihr_20260810_case_provenance_mysql8.sql
T

65 lines
4.8 KiB
SQL

-- Preserve AI case provenance after human approval. Approved synthetic cases remain synthetic.
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'synthetic_content'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `synthetic_content` tinyint(1) NOT NULL DEFAULT 0 COMMENT ''是否包含AI或确定性生成内容'' AFTER `owner`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'generator_type'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `generator_type` varchar(40) DEFAULT NULL COMMENT ''real-llm/local-transcript'' AFTER `synthetic_content`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'model_name'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `model_name` varchar(120) DEFAULT NULL COMMENT ''生成模型;本地规则为空'' AFTER `generator_type`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'prompt_version'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `prompt_version` varchar(50) DEFAULT NULL COMMENT ''案例整理提示词版本'' AFTER `model_name`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'grounding_oss_id'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `grounding_oss_id` bigint DEFAULT NULL COMMENT ''整理所依据的原始音频OSS'' AFTER `prompt_version`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'ai_summary_hash'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `ai_summary_hash` char(64) DEFAULT NULL COMMENT ''AI整理摘要SHA-256'' AFTER `grounding_oss_id`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'reviewer_id'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `reviewer_id` bigint DEFAULT NULL COMMENT ''人工审核人'' AFTER `ai_summary_hash`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_ddl := IF(
NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE()
AND table_name = 'aihr_case_record' AND column_name = 'reviewed_time'),
'ALTER TABLE `aihr_case_record` ADD COLUMN `reviewed_time` datetime DEFAULT NULL COMMENT ''人工审核时间'' AFTER `reviewer_id`', 'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl; EXECUTE aihr_case_provenance_stmt; DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_index_exists := (
SELECT COUNT(*) FROM information_schema.statistics
WHERE table_schema = DATABASE() AND table_name = 'aihr_case_record'
AND index_name = 'idx_aihr_case_synthetic_review'
);
SET @aihr_case_provenance_ddl := IF(@aihr_case_provenance_index_exists = 0,
'ALTER TABLE `aihr_case_record` ADD KEY `idx_aihr_case_synthetic_review` (`tenant_id`, `synthetic_content`, `status`, `reviewed_time`)',
'SELECT 1');
PREPARE aihr_case_provenance_stmt FROM @aihr_case_provenance_ddl;
EXECUTE aihr_case_provenance_stmt;
DEALLOCATE PREPARE aihr_case_provenance_stmt;
SET @aihr_case_provenance_index_exists := NULL;
SET @aihr_case_provenance_ddl := NULL;