Xquery 原生xml数据库中的唯一性插入

Xquery 原生xml数据库中的唯一性插入,xquery,sedna,nativexml,Xquery,Sedna,Nativexml,我正在开发一个基于XML的项目。我使用Sedna数据库来存储我的集合(其中包含XML文件及其XSD模式文件) 我在这些方案中定义了主键/唯一键,但到目前为止,我可以在主键字段中插入重复值(通过XQuery update insert命令)。为了保证唯一性约束,您应该在插入之前为正确路径上的每个节点触发器创建。在触发操作中,$NEW可传递变量可用于获取新密钥,并检查文档中是否已存在该密钥(请参阅手册中的)。可以使用“引发错误”功能 关于触发器,请注意以下事项: “禁止在触发器操作语句中使用prol

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


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

为了保证唯一性约束,您应该在插入之前为正确路径上的每个节点触发器创建。在触发操作中,
$NEW
可传递变量可用于获取新密钥,并检查文档中是否已存在该密钥(请参阅手册中的)。可以使用“引发错误”功能

关于触发器,请注意以下事项:

  • “禁止在触发器操作语句中使用prolog”-Sedna程序员指南

  • 另请参见(尽管已关闭)


  • XSD模式是如何导入XQuery或数据库的?我认为Sedna不支持模式。我按照如下方式加载了文件:从cmd:“se_term-file load_data.xquery mydatabase”,该文件包含:创建集合“mycl”&load“1t.xml”“1”“mycl”&load“2.xml”“2”“mycl”&load“1.xsd”“1schem”“mycl”&load“2.xsd”“2schem”“mycl”&亲爱的Jens,您是对的,它不支持模式,我必须使用触发器实现唯一索引,但我不知道如何实现,如果您有任何想法,请您帮助我。到目前为止,我正在学习如何在插入之前编写xQuery触发器,我必须在Sedna中运行此查询(我使用Sedna.net驱动程序),然后如何插入节点并检查其子节点值的唯一性??请回答您的问题好吗?