簡體   English   中英

傑克遜刪除行並設置自動增量列

[英]jackcess delete row and set autoincrement column

  1. 如何使用幫助技巧從表中刪除行? 我嘗試這樣做,但這很不好:

      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(); } } 
  2. 如何將列“ id”屬性設置為自動增量?

    Table newTable = new TableBuilder("diagnosis"). addColumn(new ColumnBuilder("id") .setSQLType(Types.INTEGER) .toColumn()) .addColumn(new ColumnBuilder("name") .setSQLType(Types.VARCHAR) .toColumn()).toTable(db);

如果您的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();
}

您自己的答案表明您已經想出了如何使列自動遞增的方法。

對於將自動增量設置為列:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM