问题
我有一些数据的表,其中包含ID
整数类型的列(这也是主键)。
当向表中添加新数据条目时,它应该获得一个新 ID,而插入对象的应用程序不知道该 ID,但它应该由数据库给出。例如,ID 应分配为 0、1、2、...
假设我有新条目的所有其他数据,我将如何插入?一般:
insert into T values(123, 'data');
但是现在我不知道该放什么而不是 123 - 你会在数据库中创建某种全局变量NEXTID
来提供 ID 并在每次插入之前查询/更新这个值T
吗?
问题
- 如何处理此类问题?最好使用并发保存的解决方案。
- 如何使用 Java/myBatis 实现这一点?我有一个与表结构对应的 Java 类,应该将一个新对象添加到数据库中,自动获取一个新 ID。
更新
我搜索的是自动增量。
- 是否有标准的 SQL 方式(独立于数据库)将列声明为自动增量?我正在使用Apache Derby,
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)
建议在这里。 - 插入到包含自增列的表中是什么样子的?
- 当可以同时访问数据库时,在插入后获取创建的自动增量值的最佳方法是什么?
我会接受一个答案,其中包括声明和插入的解释和 SQL 指令:)