2014-08-31 80 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. 
    
  • 圖形用戶界面和在導出對話框下的菜單欄數據庫導出

相關問題