Debian 4.4.5-8、64 ビットの x86_64-pc-linux-gnu で PostgreSQL 8.4.13 を使用しています。
次の表を作成しました。
CREATE TABLE users (
user_id serial PRIMARY KEY NOT NULL,
name varchar(200),
username varchar(150),
password varchar(150),
);
次に、Java アプリケーションを使用して、次のコードを実行します。
String insertTableSQL = "INSERT INTO USERS"
+ "(name, username, password) VALUES"
+ "(?,?,?)";
PreparedStatement preparedStatement = DBCon.prepareStatement(insertTableSQL);
preparedStatement.setString(1, userInfo.get("name"));
preparedStatement.setString(2, userInfo.get("username"));
preparedStatement.setString(3, userInfo.get("password")));
preparedStatement.executeUpdate();
問題はexecuteUpdate()
、次の例外が生成されることです。
ERROR: null value in column "user_id" violates not-null constraint
奇妙なことに、psql を使用して同じ挿入ステートメントを実行すると、正常に実行されます。なんで?