2016-10-03 51 views
0

我是處理SQL數據庫的新手,所以我希望你不介意基本問題。
對於一個研究項目,我必須將兩個具有相同結構的SQL數據庫結合起來。
它們已經從鳴叫轉儲創建,並且包含interreferenced在幾個預定義類如鳴叫文本,鳴叫ID,用戶(ID),鳴叫的id信息表中,包含主題標籤等 它們重疊到一些延伸,即一些鳴叫包含在兩個數據庫中。將兩個SQLDatabases與幾個表結合在一起;在這個過程中丟失重複

它們與Peewee一起構建,並且僅限於包含唯一的觀察結果。
我曾嘗試使用以下syntax-面對可能預見的錯誤消息「唯一約束失敗」兩個數據庫結合起來。

我該如何做到最好?我想最終得到一個包含獨特推文列表的數據庫。

#Merging the two databases 
import sqlite3 
tweets=sqlite3.connect("tweets_1.db") 
tweets.execute("ATTACH 'tweets_2.db' as dba") 

tweets_.execute("BEGIN") 
for row in tweets_.execute("SELECT * FROM dba.sqlite_master WHERE type='table'"): 
combine = "INSERT INTO "+ row[1] + " SELECT * FROM dba." + row[1] 
print(combine) 
tweets_.execute(combine) 
tweets_.commit() 
tweets_.execute("detach database dba") 

回答

0

最好的辦法是運行多個查詢:

  1. 創建臨時表
  2. 導入這兩組數據爲它
  3. 然後運行一個INSERT INTO表SELECT DISTINCT( key_field)FROM temp表

我不知道SQL lite是否支持臨時表,因此可能必須創建它並且t母雞下降,但這將是我如何在mySQL中做到這一點

相關問題