python mysqldb INSERT在AUTO_INCREMENT主列中插入任意值

时间:2013-01-08 06:56:29

标签: python mysql mysql-python

我有一个mysql数据库。我有一个名为id的列,它也是主键。我手动插入到25。现在我已经写了一个python代码插入到数据库中。插入的代码是

c.execute("""INSERT INTO Website (website_name, enabled) VALUES (%s, 0)""", (store_name))

现在,我遇到的问题是auto_increment列中的值是任意的。比如,25之后插入的值是1116.有没有办法按递增顺序插入它们? 谢谢

2 个答案:

答案 0 :(得分:0)

对小学的关键要求是它必须是独一无二的。没有硬性和快速要求主键完全顺序,或者甚至连续提升。

如果您需要一个始终提升且完全顺序的值,那么最佳做法是使用单独的列(即主键列)来存储顺序值。您需要使用考虑并发问题的机制在代码中设置这些值(如果适用)。

对于大多数数据库实现,没有明确保证自动增量值将是完全顺序的。

答案 1 :(得分:0)

您可以auto_increment

获得lastrowid
c.execute("""INSERT INTO Website (website_name, enabled) VALUES (%s, 0)""", (store_name))
my_last_id = c.lastrowid  # cursor.lastrowid

进一步参考潜水How do I get the "id" after INSERT into MySQL database with Python?