2016-12-28 65 views
0

我想製作一個有很多列的sqlite表。Python + SQLite:如何使用列表創建表列?

表和SQLite的代碼看起來像......

cur.execute('''CREATE TABLE MyTable 
      (AAA INTEGER PRIMARY KEY AUTOINCREMENT, 
      BBB INTEGER, 
      Col_1 TEXT, 
      Col_2 TEXT, 
      Col_3 TEXT, 
      Col_4 TEXT, 
      ........There are 1000x columns here...... 
      Col_1000 TEXT); 
      ''') 

因爲有這麼多的專欄中,我用一個列表來生成的列名。

SQL_Title_List = [] 
for i in range(1, 1001, 1): 
    Temp = "Col_" + str(i) 
    SQL_Title_List.append(Temp) 

我的問題是,如何寫SQL代碼專業?手動編寫它們會非常痛苦。

感謝您的幫助!

+5

也有一些是嚴重錯誤您的數據庫設計,如果你有1000列的表。 –

+0

列名是預定義的還是從某個文件讀取的? – MYGz

+0

@DanielRoseman :-(實際上我有1000多列 – doglas

回答

3

請不要那樣做。這是一個非SQL的事情。相反,您應該創建另一個具有三行的表 - main_row_id(主表的外鍵),col_number(數字1至1000),值(文本字段)。

因此,不是每行1,000列,而是每行第二個表中有1,000 記錄

另一方面,如果你需要存儲這樣的表,因爲它是有意義的,你不應該使用SQLite,而應該使用其他的東西。我會看熊貓。

+0

1000外鍵查找時會得到快速昂貴... –

+0

不是。在JOINing表時選擇數千條記錄通常是一個問題。 – zmbq

+1

謝謝!熊貓聽起來不錯。我其實認爲sqlite可以輕鬆完成這項任務。 – doglas