防止在sqlite中的IGNORE INTO语句之后自动增加id

时间:2016-01-16 15:51:49

标签: java sqlite

我发现有一些重复的线程在谈论使用选项innodb_autoinc_lock_mode=0,但我不知道如何在SQLite中这样做。

这是我的代码:

ps = conn.prepareStatement("INSERT OR IGNORE INTO users(name, lastname) VALUES(?, ?)");
ps.setString(1, nameField.getText());
ps.setString(2, lastNField.getText());
int res = ps.executeUpdate();

namelastname被设置为唯一键。这可以按预期工作(如果名称和姓氏已经存在,则不会插入),但每次都会自动增加id。知道如何通过修复自动增量或更改sql代码来解决这个问题吗?我在java中这样做。

1 个答案:

答案 0 :(得分:1)

只需从表定义中删除AUTOINCREMENT即可。

一个简单的INTEGER PRIMARAY KEY列still is autoincrementing,但不保留单独的计数器。相反,新行只会获取当前表中最大的一个ID。

仅当您要阻止重复使用已删除行的ID时,才能使用AUTOINCREMENT。