QSqlTableModel无法从ins检索最后一个id

2024-04-20 10:04:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在插入后检索记录的id(使用PyQt5)。 数据库为MySql,id不为空,自动递增。 在执行下面的代码之后,记录被正确地插入到表中,但是lastInsertId()命令返回None。在

有谁能告诉我代码有什么问题吗?我很感激你的帮助。在

from PyQt5 import QtSql

db = QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setUserName('root')
db.setPassword('')
db.setDatabaseName('teste')
db.open()

model = QtSql.QSqlTableModel(None, db)
model.setTable("test_table")

record = QtSql.QSqlRecord(model.record())
record.setGenerated("id", True) # this line can be commented, the result is the same
record.setValue("column_test", "teste")
teste = model.insertRecord(-1, record)
print(model.query().lastInsertId()) #printed: None
print(model.lastError().text()) #printed: nothing
print(model.query().driver().hasFeature(QtSql.QSqlDriver.LastInsertId)) #printed: True

Tags: 代码testnoneidtruedbmodel记录