2014-08-31 44 views
0

我在BaseX 7.9上执行以下XQuery代码,并能够在结果窗口中看到插入。关闭并重新打开集合后,我甚至可以看到新节点。但是,当我去文件目录,我看到它没有被修改。那么,我怎样才能让插入反映在文件上呢?那么BaseX如何处理插入命令,以便它在数据库的上下文中是持久的,而不是在文件的上下文中?为什么BaseX在插入节点命令时不能修改文件?

let $up := <Employee Name="Joe"> 
    <Personal> 
     <SSN>666-66-1234</SSN> 
    </Personal> 
    <StaffInfo> 
     <Position>Doctor</Position> 
     <AccountableTo>Jeff</AccountableTo> 
    </StaffInfo> 
    </Employee> 
return insert node $up as last into doc('office')/Staff 

回答

2

默认情况下,更新不会反映在数据库外的XML文档中。但是,更新可能会通过command-line flag -U或选项WRITEBACK强制执行。

3

BaseX数据库对应,他们从创建的XML文件,但在与一些富含指数高的查询性能特殊的编码。当使用XQuery Update更新数据库时,原始文件不会自动更新(因此,从数据库序列化的XML)。

导出数据库使用更新之后或者

  • 命令提示EXPORT命令:

    EXPORT [path] 
        Export database to XML. 
    
  • 图形用户界面和在导出对话框下的菜单栏数据库导出

相关问题