-1

我创建了一个如下表:

    cur.execute("""CREATE TABLE IF NOT EXISTS worddata(
               wordid INT(11) AUTO_INCREMENT PRIMARY KEY,
               Keyword VARCHAR(100) NOT NULL,
               FileName VARCHAR(100));""")

然后使用执行它:

     cur.executemany("INSERT INTO worddata VALUES(%s, %s, %s)", wordData)

其中 wordData 是具有多个条目的元组列表。

这是行不通的。我试过以下:

  1. 如果我从 CREATE TABLE 语句中删除“wordid INT(11) AUTO_INCREMENT PRIMARY KEY”并删除其中一个占位符 (%s),它的工作正常。

  2. 如果我只是按照某些帖子中针对 cursor.execute 的建议删除其中一个占位符 (%s),则它不起作用(注意我必须使用“cursor.executemany”)

  3. 我什至尝试在 INSERT 阶段使用 wordData(Keyword, FileName),但没有用。

  4. 尝试了许多其他选项,例如在 INSERT 和 CREATE 期间放置 DEFAULT、NULL、O 等,但都没有奏效。

在 MySQL 中插入条目时,我可以使用 cursor.executemany 以及 Auto_Increment 和元组列表的出路是什么。

4

1 回答 1

0

解决方案很简单:

我正在使用元组元组,例如: (('bye', '36930001437'), ('good', '36930001437'), ('night', '36930001437'))

诀窍是使用元组列表: [('bye', '36930001437'), ('good', '36930001437'), ('night', '36930001437')]

通过这个简单的更改,我现在得到 Auto_Increment 列,而没有任何关于插入值命令的问题。

于 2017-08-29T08:34:06.297 回答