java如何在数组数据类型的元素上添加外键约束
我正在尝试执行此hsql查询,但由于PATIENTVISIT中的“症状”类型为Array Varchar(),而表SYMPTOMS中的“症状名称”类型为varchr():
ALTER TABLE PATIENTVISIT ADD CONSTRAINT IF NOT EXISTS
PATIENTVISIT_SYMPTOMS_FK FOREIGN KEY (SYMPTOMS) REFERENCES SYMPTOMS(SYMPTOM_NAME);
我得到的例外是:
java.sql.SQLSyntaxErrorException: incompatible data types in combination in statement [ALTER TABLE PATIENTVISIT ADD CONSTRAINT IF NOT EXISTS PATIENTVISIT_SYMPTOMS_FK FOREIGN KEY (SYMPTOMS) REFERENCES SYMPTOMS(SYMPTOM_NAME)]
如何解决此问题或解决方法是什么
# 1 楼答案
您只希望SYSMPTOM_NAME列中的值用作PATIENTVISIT中数组的元素。仅允许识别的症状名称值作为有效症状
无法使用外键定义此类型的约束
您可以在PATIENTVISIT表上使用触发器,根据症状表中的元素检查数组的所有元素,如果存在无法识别的值,则引发异常