【问题标题】:How do I insert columns in my SQL table, where column name is a variable?如何在我的 SQL 表中插入列,其中列名是变量?
【发布时间】:2019-05-23 02:38:41
【问题描述】:

我想在我的 SQL 表中插入列。列名是一个变量(从数组中读取)。

我收到此错误:sqlite3.OperationalError: near "(": 语法错误

for i in range(0, 100):
    conn.cursor().execute("ALTER TABLE TABLENAME ADD (?) real", (arr[i]))

【问题讨论】:

  • 尝试删除列名周围的括号。
  • 我认为您不能在 DDL 语句中使用参数(即创建或更改表)。您必须将语句构建为文字字符串,即"ALTER TABLE TABLENAME ADD " + arr[i] + " real"。确保arr[i] 已通过验证,因为不幸的是,这种方法会使您容易受到注入攻击。

标签: python sql


【解决方案1】:

你可以尝试用这个来代替吗?

 conn.cursor().execute(("ALTER TABLE TABLENAME ADD (columnName) real").format(columnName=arr[i]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多