Tôi đang sử dụng PostgreSQL 8.4.13 trên x86_64-pc-linux-gnu trên Debian 4.4.5-8, 64-bit.PSQLException: ERROR: giá trị null trong cột vi phạm ràng buộc không null
Tôi đã tạo ra bảng sau:
CREATE TABLE users (
user_id serial PRIMARY KEY NOT NULL,
name varchar(200),
username varchar(150),
password varchar(150),
);
Sau đó, sử dụng một ứng dụng Java, tôi thực thi đoạn mã sau:
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();
Vấn đề ở đây là executeUpdate() tạo ra sau ngoại lệ:
org.postgresql.util.PSQLException: ERROR: null value in column "user_id" violates not-null constraint
Điều kỳ lạ là nếu tôi thực hiện tương tự sert tuyên bố bằng cách sử dụng psql, nó thực hiện thành công.
Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.
Cảm ơn bạn.
Tại sao bạn có 5 dấu hỏi và chỉ 3 'setString'? Ngoài ra chúng dường như không đúng thứ tự ... – durron597
Bạn có quá nhiều dấu hỏi trong câu lệnh sql của bạn (chỉ định 3 cột nhưng 5 tham số liên kết). Hãy thêm 'id' làm cột chèn và xóa dấu chấm hỏi hoặc xóa dấu chấm hỏi thêm. – Glenn
Cảm ơn bạn đã trả lời! Dấu hỏi thêm và vấn đề không đúng thứ tự là lỗi sao chép-dán do sửa đổi mã để trình bày một phiên bản đơn giản của nó. Tôi sửa nó rồi. – Maestros