如何从帮助jackcess删除行表? 我尝试如此,但它的坏:jackcess删除行并设置自动增量列
Table ptabl = db.getTable("person"); int pcount = ptabl.getRowCount(); for (int i = 0; i < pcount; i++) { Map<String, Object> row2 = ptabl.getNextRow(); if (row2.get("id") == Integer.valueOf(1)) { ptabl.deleteCurrentRow(); } }
如何组列“id”属性为自动增量?
Table newTable = new TableBuilder("diagnosis"). addColumn(new ColumnBuilder("id") .setSQLType(Types.INTEGER) .toColumn()) .addColumn(new ColumnBuilder("name") .setSQLType(Types.VARCHAR) .toColumn()).toTable(db);
1
A
回答
3
如果你的ID列索引,则可以使用IndexCursor快速查找列:
IndexCursor cursor = new CursorBuilder(ptabl).setIndexByColumnNames("id").toIndexCursor();
if(cursor.findFirstRowByEntry(1)) {
cursor.deleteCurrentRow();
}
如果你的id列没有编入索引,你可以使用普通的光标,这样更方便,但实际上没有比你目前的代码快(只是做一个表扫描):
Cursor cursor = new CursorBuilder(ptab1).toCursor();
Column idCol = ptab1.getColumn("id");
if(cursor.findFirstRow(idCol, 1)) {
cursor.deleteCurrentRow();
}
和你自己的答案表明您已经想出如何使列自动递增。
1
对于一套自动增量列:
Table newTable = new TableBuilder("diagnosis").addColumn(new ColumnBuilder("id").setAutoNumber(true).setSQLType(Types.INTEGER).toColumn()).addColumn(new ColumnBuilder("name").setSQLType(Types.VARCHAR).toColumn()).toTable(db);
相关问题
- 1. 删除自动增量中的差距
- 2. MySQL设置自动增量“特设”
- 3. Laravel 5.3和Redis(predis) - 自动增量散列和删除散列`行'
- 4. 删除后重置SQL Server中的自动增量
- 5. 休眠自动增量设置
- 6. 脚本添加和删除列自动增量属性
- 7. 将自动增量列修改为全局自动增量列
- 8. 重置PK自动增量列
- 9. 设置并检索从mysql到java的自动增量值(在jlabel中设置)
- 10. 创建新列,并设置3行的步增量
- 11. phpmyadmin如何设置自动增量的2列
- 12. 键列自动增量
- 13. 检测自动增量列
- 14. Hbase:自动增量列
- 15. 从列表中增量删除元素
- 16. 无法使用getSystemTable通过Jackcess删除表并使用findFirstRow
- 17. 增加值向量,并设置
- 18. mysql,alter column删除主键和自动增量
- 19. 删除后自动增量主键会发生什么?
- 20. mysql自动增量 - 记录删除后重新分配
- 21. MySQL的自动增量值删除后没有WHERE
- 22. MySQL自动增量跳过删除号码
- 23. 如何重置所有数据后在SQL Server中的自动增量删除
- 24. 更新列名并将其设置为自动增量时正在执行批处理时发生错误
- 25. 重置数据删除MySQL后的自动增加值
- 26. Laravel 5.4设置并增加自定义会话变量
- 27. 在单元测试中使用自动增量键删除测试行
- 28. SQL Server:主键自动增量 - 删除的行和空闲键值是什么?
- 29. 从自动递增的列中删除值
- 30. 合并自动增量表数据