3

私は2つの列を持つテーブルを持っています

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

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

2番目の方法で、必要なものでデータを挿入します

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...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
于 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 に答える