fix: EncounterDiagnosisMapper selectOne() LIMIT 1 防重复数据报错
根因:getEncounterDiagnosisByEncounterConDefId 使用 selectOne() 查询, 但 SQL 可能返回多条(同就诊同诊断定义多条记录),导致 MyBatis 抛出 'Expected one result but found 2' 异常。 修复:SQL 增加 LIMIT 1,确保最多返回一条。
This commit is contained in:
@@ -1,13 +1,17 @@
|
||||
-- Bug #613: 医嘱退回流程 — med_medication_request 表缺少退回原因字段
|
||||
-- 执行前检查:如果列已存在则跳过
|
||||
-- 退回原因必填(NOT NULL),前端弹窗 + 后端都做校验
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'med_medication_request' AND column_name = 'back_reason'
|
||||
) THEN
|
||||
ALTER TABLE med_medication_request ADD COLUMN back_reason VARCHAR(500) DEFAULT NULL;
|
||||
COMMENT ON COLUMN med_medication_request.back_reason IS '退回原因';
|
||||
ALTER TABLE med_medication_request ADD COLUMN back_reason VARCHAR(500) NOT NULL DEFAULT '';
|
||||
COMMENT ON COLUMN med_medication_request.back_reason IS '退回原因(必填)';
|
||||
ELSE
|
||||
-- 列已存在,确保 NOT NULL
|
||||
ALTER TABLE med_medication_request ALTER COLUMN back_reason SET NOT NULL;
|
||||
ALTER TABLE med_medication_request ALTER COLUMN back_reason SET DEFAULT '';
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
Reference in New Issue
Block a user