我正在开发一个基于XML的项目。我使用Sedna数据库来存储我的集合(其中包含XML文件及其XSD架构文件)。
我在这些方案中定义主键/唯一键,但到目前为止,我可以将重复值(通过XQuery update insert命令)插入主键字段。
答案 0 :(得分:2)
为了保证唯一性约束,您应该在正确的路径上创建BEFORE INSERT FOR EACH NODE触发器。在触发器操作中,$NEW
传递变量可用于获取新密钥并检查它是否已存在于文档中(请参阅手册中的examples)。可以使用提升错误fn:error功能。
请听取以下关于触发器的说明:
“禁止在触发操作的声明中使用prolog” - Sedna Programmer's Guide,XQuery Triggers。
另见bug 51(虽然已经关闭)。