繁体   English   中英

如何通过java自动增加mysql表中的列

[英]How to Auto increment a column in mysql table through java

我有2列的表1.column1 2.column2(它的独特)现在通过java编码我在第一种方法中通过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不是主键

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

这个对我有用

请参阅INSERT ... SELECT

你的查询应该是这样的,

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

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

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

对于前者,

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

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

INSERT INTO table (column2) values(?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM