2016-04-12 10 views
0

テーブル内の最初の列を作成しようとしていますが、新しい行が追加されるたびに自動的に増分されますが、代わりに「NULL」が挿入されます。ここでSQL最初の列の増分を作成する方法

は、新しい行を挿入するための私のコードです:ここでは

String update = "INSERT INTO help(name, area, date, message) VALUES(?, ?, ?, ?)"; 
    try { 
     connection = plugin.getHikari().getConnection(); 
     // Inserting into the table 
     statement = connection.prepareStatement(update); 
     // Replace the '?' with the actual information 
     statement.setString(1, name); 
     statement.setString(2, area); 
     statement.setString(3, date); 
     statement.setString(4, message); 
     statement.execute(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 

は、私は私のテーブルを作成する方法である:ここでは

statement = connection.prepareStatement(
       "CREATE TABLE IF NOT EXISTS help" + 
         "(" + 
         "id int," + 
         "name varchar(20)," + 
         "area varchar(25)," + 
         "date varchar(15)," + 
         "message varchar(255)" + 
         ")"); 
     statement.execute(); 

は私が毎回アプリケーションがロードされた/開始を実行するステートメントがありますアップ:

statement = connection.prepareStatement("ALTER TABLE help MODIFY COLUMN id INT auto_increment"); 

おかげで、 - Nicster

+1

を挿入値を毎回インクリメントするJavaのロジックを使用する必要がしているのどちらかをお役に立てば幸いですどのデータベースを使用していますか? mysqlタグとOracleタグの両方を使用しましたが、これらのdbsはそれとは異なります。また、テーブルのcreate sqlを表示して、設定した方法を知ることができますか? –

+0

@ SamM私は主な投稿とタグを編集しました。 :) – Nicster15

+0

あなたの 'id'列を' PRIMARY KEY'にしてください。次に、それを 'AUTO_INCREMENT'に変更してください。 – 1000111

答えて

2

createステートメントで必要なことをすべて実行できます。問題は、あなたのid列がnullであり、主キーではないということです。

ちょうどあなたのあなたは、ALTER TABLE文を必要はありません

statement = connection.prepareStatement(
      "CREATE TABLE IF NOT EXISTS help" + 
        "(" + 
        "id int not null auto_increment," + 
        "name varchar(20)," + 
        "area varchar(25)," + 
        "date varchar(15)," + 
        "message varchar(255)" + 
        "PRIMARY KEY (id)" + 
        ")"); 
    statement.execute(); 

に文を作成する変更。それは

+1

偉大な答えクリス。 @ Nicster15では、アプリケーションがロードされるたびにalter table文を実行する必要はありません。 –

+0

@Chris oh awesome。 1つの質問、「PRIMARY KEY」は何を意味しますか? – Nicster15

+0

主キーは、リレーショナルデータベース内のレコードを一意に識別するために使用される列(複数可)です。 – Chris

0

あなたが自分自身をAUTO_INCREMENTうテーブル「PRIMARY KEY(ID))」に主キーを追加、またはあなたが行

+0

プライマリキーは正確には何ですか?行を特定する方法は? – Nicster15

+0

https://en.wikipedia.org/wiki/Unique_key –

関連する問題