我遇到了自动递增的问题,同时更改了数字,并且没有保持我定义的增量。 附加了表格的代码和图像。
// Table 3 creation (Coupon)
try {
java.sql.Statement stmt3 = conn.createStatement();
sql = "create table Coupon("
+ "ID bigint not null primary key generated always as identity(start with 1, increment by 1), "
+ "TITLE varchar(30) not null, "
+ "START_DATE DATE not null, "
+ "END_DATE DATE not null,"
+ "AMOUNT INTEGER not null,"
+ "TYPE varchar(10) not null,"
+ "MESSAGE varchar(30) not null,"
+ "PRICE double not null,"
+ "IMAGE varchar(200) not null)";
stmt3.executeUpdate(sql);
System.out.println("success:" + sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
答案 0 :(得分:0)
您不使用数据库标记问题。但是,没有数据库可以保证自动递增/串行/身份列始终仅递增“ 1”。
这种保证有很多开销。
相反,可以保证的是,当列是唯一的时,下一个值将大于上一个值,并且差将是增量的倍数。
无间隙增量需要大量工作的一些原因:
有很多解决方法,但是它们很昂贵,通常是不必要的。