【问题标题】:SQL OperationalError: near "%": syntax error when using inserting values into a table with "executemany"SQL OperationalError:“%”附近:使用“executemany”将值插入表时出现语法错误
【发布时间】:2021-09-05 20:08:50
【问题描述】:

我一直在尝试使用以下代码将值插入到表中:

top10_strong_beers.values.tolist() =
[['Surly Brewing Company', 'Abrasive Ale', 2020, 1],
 ['Modern Times Beer', 'Blazing World', 2020, 2],
 ['Sixpoint Craft Ales', 'Hi-Res', 2020, 3],
 ['Southern Star Brewing Company', 'Red Cockaded Ale', 2020, 4],
 ['Tallgrass Brewing Company', 'Ethos IPA', 2020, 5],
 ['Caldera Brewing Company', 'Hopportunity Knocks IPA', 2020, 6],
 ['Mike Hess Brewing Company', 'Habitus (2014)', 2020, 7],
 ['Oskar Blues Brewery', 'GUBNA Imperial IPA', 2020, 8],
 ['Renegade Brewing Company', 'Redacted Rye IPA', 2020, 9],
 ['Sockeye Brewing Company', 'Dagger Falls IPA', 2020, 10]]


query = """
INSERT INTO strong_beer_competition
    (brewery,beer,year,ranking)
     VALUES (%s,%s,%s,%s)
    """

cur.executemany(query, top10_strong_beers.values.tolist())
conn.commit()

我收到以下错误:

OperationalError                          Traceback (most recent call last)
<ipython-input-47-e3e92e2c1d6f> in <module>
     11 """
     12 
---> 13 cur.executemany(query, top10_strong_beers.values.tolist())
     14 conn.commit()

OperationalError: near "%": syntax error

我不确定如何解决这个问题。我一直在寻找为什么会发生此错误,但它似乎与我查找的其他代码相似。任何人都可以帮忙吗?任何让我更接近解决这个问题的东西都值得赞赏。谢谢。

【问题讨论】:

    标签: sql syntax insert executemany


    【解决方案1】:

    好吧,我在寻找另一个问题的解决方案时意外找到了答案。我应该使用“?”而不是“%s”。

    我没有意识到有不同版本的 SQL,而且我显然使用的是使用“?”的 SQLite3。而不是“%s”。希望这可以帮助像我这样的其他白痴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多