在本机xml数据库中插入uniqness

时间:2016-12-14 11:21:47

标签: xquery sedna nativexml

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

我在这些方案中定义主键/唯一键,但到目前为止,我可以将重复值(通过XQuery update insert命令)插入主键字段。

1 个答案:

答案 0 :(得分:2)

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

请听取以下关于触发器的说明:

  1. “禁止在触发操作的声明中使用prolog” - Sedna Programmer's Guide,XQuery Triggers

  2. 另见bug 51(虽然已经关闭)。