Python-sqlite中的变量表名称
问题:是否可以在不使用字符串构造函数的情况下将变量用作表名?
信息:
我现在正在研究一个项目,该项目对来自我的恒星模拟的数据进行分类。为此,我将所有数据加载到sqlite数据库中。它工作得很好,但是我决定为数据库增加更多的灵活性,效率和可用性。我计划稍后在模拟中添加小行星,并希望为每个恒星提供一张表格。这样,我就不必查询每个太阳系中1-4k的20m个小行星的表。
有人告诉我使用字符串构造函数是不好的,因为它使我容易受到SQL注入攻击。虽然这并不是什么大问题,因为我是唯一有权访问这些数据库的人,但我想遵循最佳实践。而且通过这种方式,如果我在向公众开放的情况下进行类似的项目,我也知道该怎么做。
目前,我正在这样做:
cursor.execute("CREATE TABLE StarFrame"+self.name+" (etc etc)")
这可行,但是我想做更多类似的事情:
cursor.execute("CREATE TABLE StarFrame(?) (etc etc)",self.name)
尽管我知道这可能是不可能的。虽然我会满足于
cursor.execute("CREATE TABLE (?) (etc etc)",self.name)
如果根本不可能,我将接受该答案,但是如果有人知道执行此操作的方法,请告知。:)
我在用python编码。