【问题标题】:update the sqlite_sequence table in java更新 java 中的 sqlite_sequence 表
【发布时间】:2020-07-01 09:51:09
【问题描述】:

我在 java 中使用 SQLite JDBC 并生成一个 SQLite 表(在 java 中),我想为 AUTOINCREMENT 提供一个自定义值,以 4521 开头,但我不知道如何在 java 中执行它我知道我必须更改 SQLITE_SEQUENCE 表,但我不知道如何在 java 中进行。 这是我在java中的代码:)请帮助我谢谢。

private static void hasDatabase() throws ClassNotFoundException,
        SQLException {
    // TODO Auto-generated method stub

    Connection myConn = null;
    Statement myStmt = null;
    Statement mystmtTwo = null;


    Class.forName("org.sqlite.JDBC");
    myConn = DriverManager.getConnection("jdbc:sqlite:mylibrary.db");

    myStmt = myConn.createStatement();

    myStmt.execute("CREATE TABLE mymembers ( idmymembers    INTEGER      PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL,"
            + "membername     VARCHAR (45) NOT NULL,"
            + "memberlastname VARCHAR (45) NOT NULL,"
            + "memberage      INT (11)     NOT NULL,"
            + "membergender   VARCHAR (45) NOT NULL);");    
    mystmtTwo = myConn.createStatement();
    mystmtTwo.execute("UPDATE SQLITE_SEQUENCE SET seq = 98111 WHERE name = 'mymembers';");
}

【问题讨论】:

    标签: java sql sqlite


    【解决方案1】:

    如果您需要在空表上设置autoincrement 序列,您必须将insert 这个值设置为sqlite_sequence,而不是update

    考虑这个例子(jcabi-jdbc 用于处理查询):

    final JdbcSession session = new JdbcSession(src);
    session
        .sql("CREATE TABLE members(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL)")
        .execute();
    session
        .sql("INSERT INTO sqlite_sequence values(?,?)")
        .set("members")
        .set(123)
        .insert(Outcome.VOID);
    session
        .sql("INSERT INTO members values(null)")
        .execute();
    session
        .sql("INSERT INTO members values(null)")
        .execute();
    final List<Integer> values = session
        .sql("SELECT id FROM members")
        .select(new ListOutcome<>(rset -> rset.getInt("id")));
    MatcherAssert.assertThat(
        values,
        Matchers.equalTo(Arrays.asList(124, 125))
    );
    

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多