程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2數據庫外部文件導入的注意事項(1)

DB2數據庫外部文件導入的注意事項(1)

編輯:DB2教程

本文將為您介紹DB2數據庫系統中,外部文件導入導數據庫過程中的一些需要注意的問題,供您參考,希望對您有所幫助。

在將數據庫投入生產使用之前,數據庫管理員往往需要先往數據庫中導入大量的數據。數據庫中只有大量的基礎數據,建立在數據庫上的應用軟件才能夠發揮效益。

本文主要談的就是在將數據從外部文件導入導數據庫過程中的一些注意事項。也許這些內容能夠幫助管理員解決難題。

一、默認值與空值的爭奪戰。

在數據庫表設計的時候,為了數據的完整性,往往會對某些列設置一些默認值。特別是某個字段不允許為空時,要設置默認值。當用戶沒有輸入對應的值的時候,就利用默認值來填充。如有一張銷售訂單的表。這個表上有一個字段是“訂單日期”。當用戶沒有輸入數據的時候,這個訂單日期就默認為當前系統的日期,從而達到簡化用戶輸入的目的。現在的問題是,在起初數據導入的時候,如果目標文件中沒有這個列對應的值,而這個字段設置了默認值,此時會有什麼後果呢? (DB2數據庫與SQLServer數據庫的異同)

通常情況下,只要字段沒有非空的約束條件(即允許存在空值),則無論這個字段有沒有設置默認值,在導入的時候,只要目標文件沒有對應的內容,都一律都會使用NULL值來替代目標文件中缺失的列。如果這個字段有非空的約束(即不允許存在空值),則數據庫系統會提示不允許空值的錯誤信息。也就是說,表中的字段默認值的設置一般情況下在導入的過程中是無效的。當目標文件中不存在某個值的時候,數據庫不會以列的默認值來填充,而是一律使用NULL值來填充。

但是,如果數據庫管理員一定要讓默認值來填充這些這些列,是否可以呢?在DB2數據庫中,這是可以的。只要目的表已經定義了默認值,那麼就可以在導入的語句中使用USEDEFAUITS選項,就可以讓數據庫系統(Oracle數據庫系統使用經驗六則)在導入的過車觀念中利用默認值來填充目標文件中不存在的數據。注意這裡只有目標文件中對應記錄的字段值不存在的時候,才會使用默認值。如果存在的話,則仍然采用目標文件中的值。可見這個NULL值與列默認值之間的戰爭,最後的結果還是在用戶手中。用戶可以通過USEDEFAULT選項來確定到底是否需要默認值。如果某個字段設置為了非空,而且這個列又設置了默認值的話,那麼筆者建議采用默認值,這可以在很大程度上簡化數據導入的工作。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved