2

我正在开发一个基于 XML 的项目。我使用 Sedna 数据库来存储我的集合(其中包含 XML 文件和它们的 XSD 模式文件)。

我在这些方案中定义了主键/唯一键,但直到现在我可以将重复值(通过 XQuery 更新插入命令)插入主键字段。

4

1 回答 1

2

为了保证唯一性约束,您应该在正确的路径上创建 BEFORE INSERT FOR EACH NODE 触发器。在触发操作中,$NEW传递变量可用于获取新密钥并检查它是否已存在于文档中(参见手册中的示例)。要引发错误fn:error函数可以使用。

请注意以下有关触发器的说明:

  1. “禁止在触发器操作的语句中使用 prolog”— Sedna 程序员指南,XQuery 触发器

  2. 另见错误 51(虽然,已经关闭)。

于 2016-12-16T10:34:25.337 回答