【发布时间】:2015-01-03 03:40:12
【问题描述】:
我是 mysql 的初学者,可能是我在某个地方的错,并且无法理解如何解决这个问题。 这是我的表的结构:-
CREATE TABLE `nearest_product_type` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`name` varchar(15) NOT NULL UNIQUE
)
;
这是我正在尝试的代码:-
base = MySQLdb.connect (host="localhost", user = "root", passwd = "sheeshmohsin", db="points")
basecursor = base.cursor()
queryone = """INSERT INTO nearest_product_type (name,created,modified) VALUES (%s,%s,%s) ON DUPLICATE KEY UPDATE name=name """
category = "Indica"
valueone = (category,datetime.datetime.now(),datetime.datetime.now())
basecursor.execute(queryone, valueone)
product_id = basecursor.lastrowid
basecursor.close()
base.commit()
base.close()
print product_id
在运行这个 python 脚本时,第一次当类别不是唯一的时,它工作正常,但是在与第一次相同的类别再次运行时,最后一行 id 返回 0。但我需要最后一行的 id更新了。
当我检查表中的行时,自动增量也在起作用,假设如果我运行脚本四次,第一次当类别唯一时,id 为 1,假设第四次出现另一个唯一类别,那么分配给这一行的 id 是 4,但它应该是 2,因为它的第二行。我该如何解决这个问题?
【问题讨论】:
-
阅读this 问题,我想这可能会有所帮助。
标签: python mysql sql mysql-python