3

我现在通过 java 编码有 2 列 1.column1 2.column2(其唯一)的表我在我要插入数据的第一种方法中通过 2 种方法插入数据,在这个 coumn1 字段中应该是自动增量(对于新用户)

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
pstm = connection.prepareStatement(sql);

    pstm.setInt(1, auto_incrmentvalue need to set);
    pstm.setInt(2,column2);

在第二种方法中插入我想要的数据

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
pstm = connection.prepareStatement(sql);

    pstm.setInt(1, column1);
    pstm.setInt(2,column2);

如何在第一种方法中设置自动增量值

注意:这里 column1 不是主键

4

3 回答 3

5
INSERT INTO table(column1) SELECT MAX(column1)+1 FROM table

这个对我有用

请参阅插入...选择

你的查询应该是这样的,

INSERT INTO table(column1, column2) SELECT MAX(column1)+1, 79  FROM table

更精致的答案:

INSERT INTO
     usertable(column1, column2) 
     SELECT CASE COUNT(column1) 
         WHEN 0 THEN 0 
         ELSE MAX(column1) END+1,
     79 FROM usertable

这可能是一个更简单的解决方案:

INSERT INTO usertable(column1, column2) 
SELECT IFNULL(MAX(column1)+1,1),79 FROM usertable
于 2012-07-11T09:10:46.447 回答
0

让我们尝试一次(未测试)

INSERT INTO table(column1) SELECT count(column1)+1 FROM table

例如,

INSERT INTO table(column1, column2) SELECT count(column1)+1, 79  FROM table
于 2012-07-11T10:00:53.043 回答
-1

如果你想要column1的自动值,不要设置它,让它得到一个默认值

INSERT INTO table (column2) values(?)
于 2012-07-11T08:53:41.920 回答