資料庫差分

2021-09-03 01:27:36 字數 816 閱讀 3832

場景:兩年前的乙個專案。資料庫是sqlserver。客戶經常把自己資料庫dump傳送過來,具體資料庫有什麼變化也不詳細說明。經常,dump匯入之後,程式就各種掛。因此就需要在匯入之前做乙個資料庫的差分。看看有哪些不一樣的。資料庫裡有幾百個表,人工做太難了。

問題:比較兩個資料庫所有表的結構差異。

方案:做乙個小工具來完成這件事情。首先想到的是vba,考慮效率pass,然後先利用c#,短時間也做不出來。

不過這兩個方案都需要讀取兩個過資料庫的系統表和檢視。既然都是這樣操作乾脆直接利用儲存過程做乙個函式的了。

設計:想好了方案,就是利用儲存過程。那就開始設計一下程式流程。

首先,需要把需要的資訊分別從兩個資料庫的系統檢視中取出來。

接著,取出來的內容做比較。

最後,把結果表示出來。

具體實施:

1,建立兩個臨時表,名字隨便了,好區分就可以了。

2,做乙個系統檢視的查詢sql。

2.1,需要想想我們需要哪些資訊。需要表名,表字段,主鍵,序號,標示,型別,長度,小資料點位數,允許空,預設值等資訊。

2.2,這些資訊都在這些檢視中sysobjects,sysindexes,systypes,syscomments,syscolumns。

2.3,最後設計連線條件,排序

3,把2中的內容分別登陸到1中建立的臨時表中。

4,再寫乙個查詢,從這兩個臨時表中取資料,條件是順序,表名,欄位名,標示,主鍵,型別,長度,小數字數,允許空,預設值。select中每個專案都需要用case when分歧判斷一下。

整體的思路就是這樣了。在這裡只分享一下演算法。

速度還是不錯的。又快又準確。

資料庫numeric TCGA資料庫 生存分析

也介紹了下游的差異分析 一文就會tcga資料庫基因表達差異分析 也介紹了 基因表達譜熱圖繪製 fit 分組,data 資料框 我們這裡就結合基因的表達量,來進行分析。首先載入我們的資料。options stringsasfactors f 載入表達資料load f tcga htseq fpkm r...

mssql,mysql,oracle資料庫分頁大全

資料庫分頁大全 oracle 利用解析函式 row number 高效分頁 mysql 分 頁採用 limt 關 鍵字 select from t order limit 5,10 返回第 6 15 行資料 select from t order limit 5 返回前 5 行 select fro...

資料庫分表

create table table1 id int 10 unsigned not null auto increment,name varchar 45 primary key id engine myisam create table table2 like table1 建立總表 creat...