我有一个包含3列的MySQL数据库:
id(主键,int,自动增量)
X1(唯一索引,varchar)
X2(int,默认值:1)
我像这样插入/更新表:
INSERT INTO table(X1) VALUES(?) ON DUPLICATE KEY UPDATE X2 = X2 +1
一切正常但主键(id)在内部递增,即使已经存在X1 =值的行并且它刚刚更新。
例如:在第一次插入时,它会创建一个id = 1的行。然后再次执行该语句,它只是因为ON DUPLICATE KEY UPDATE
而更新了行。当我然后插入一个X1 = value_different的行时,它会插入一个id = 3的行。
我希望在这种情况下id为2,因为它是表中的第2行。
我做错了吗?
编辑:我使用的是InnoDB。