2016-12-28 45 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