【发布时间】:2019-01-05 07:15:20
【问题描述】:
我有一个在 MySQL DB (10.1.26 MariaDB) 中插入记录的小 python (3.64) 脚本
import MySQLdb as mdb
...
for id in allids
...
cursor.execute("INSERT IGNORE INTO entity(id,name) VALUES (%s, %s)", (identifier, name))
标识符是一个整数,如2832718610241077149,始终为 19 位。
MySQL 字段为int(25)。
我使用循环插入语句,但我只选择了 1 条记录(使用 MySQL Workbench 检查)。 id 与 Python 中的标识符没有任何共同之处,类似于2157483647。
我发现,当我将 DB 字段更改为 varchar(25) 时效果很好。然后可以选择循环的所有插入,并且 ID 也是正确的。但我想这不是怎么做的。
【问题讨论】:
-
您确定您正在使用正确的方法来获取最后一个 ID?在我看来,您正在获取游标 ID,而不是 last_insert_id。
-
是的,我在 MySQL 工作台中使用 SELECT * FROM 实体,而不是在 python 中。列 id 不显示我的 python 脚本中的标识符,并且只有一条记录(好像在第一次插入后停止了?)
标签: python mysql sqldatatypes