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



我发现一些重复的线程在谈论使用选项 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做这件事。

只需从表定义中删除自动增量即可。

纯整数 PRIMARAY 键列仍然是自动递增的,但不保留单独的计数器。相反,新行只会获取表中当前最大 ID 之后的下一个 ID。

仅当要防止重复使用已删除行中的 ID 时,自动增量才有用。

最新更新