我正在开发一个基于 XML 的项目。我使用 Sedna 数据库来存储我的集合(其中包含 XML 文件和它们的 XSD 模式文件)。
我在这些方案中定义了主键/唯一键,但直到现在我可以将重复值(通过 XQuery 更新插入命令)插入主键字段。
为了保证唯一性约束,您应该在正确的路径上创建 BEFORE INSERT FOR EACH NODE 触发器。在触发操作中,$NEW
传递变量可用于获取新密钥并检查它是否已存在于文档中(参见手册中的示例)。要引发错误fn:error函数可以使用。
请注意以下有关触发器的说明:
“禁止在触发器操作的语句中使用 prolog”— Sedna 程序员指南,XQuery 触发器。
另见错误 51(虽然,已经关闭)。