我在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),
);
Run Code Online (Sandbox Code Playgroud)
然后,使用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();
Run Code Online (Sandbox Code Playgroud)
这里的问题是executeUpdate()生成以下异常:
org.postgresql.util.PSQLException: ERROR: null value in column "user_id" violates not-null constraint
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我使用psql执行相同的insert语句,它会成功执行.
任何想法将不胜感激.
谢谢.