0

我在 BaseX 7.9 上执行以下 XQuery 代码,并且能够在结果窗口中看到插入。我什至在关闭并重新打开集合后看到了新节点。但是,当我转到文件目录时,我看到它没有被修改。那么,我怎样才能使插入也反映在文件上呢?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
4

2 回答 2

3

BaseX 数据库对应于创建它们的 XML 文件,但采用特殊编码以实现高查询性能,并丰富了一些索引。使用 XQuery Update 更新数据库时,原始文件不会自动更新(因此,从数据库序列化的 XML)。

使用任一更新后导出数据库

  • 命令提示符EXPORT命令:

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

于 2014-09-01T07:01:10.163 回答
2

默认情况下,更新不会反映在数据库之外的 XML 文档上。但是,可以通过命令行标志 -U或选项WRITEBACK强制执行更新。

于 2014-09-01T20:25:52.550 回答