Sql语句在本地工作正常,但不在服务器上

时间:2017-10-31 17:11:21

标签: java postgresql dropwizard heroku-postgres

我正在尝试在postgresql中插入一些数据。

PreparedStatement preparedStatement= connection.prepareStatement("INSERT INTO userr (joining_date, country_code, mobile_no, email_id) VALUES(?, ?, ?, ?) RETURNING id");
        preparedStatement.setDate(1,  currentDate);
        preparedStatement.setInt(2, countryCode);
        preparedStatement.setString(3, mobileNo);
        preparedStatement.setString(4, emailId);
        ResultSet x= preparedStatement.executeQuery();

当我在我的本地机器上尝试这个时,每件事情都可以。但是当我将它转移到我的服务器时它会抛出错误

org.postgresql.util.PSQLException:Error: null value in column "id" violates not-null constraint

我的表创建语句如下所示。

private static void createTableUser(Connection connection) throws SQLException {
    Statement statement= connection.createStatement();
    statement.executeUpdate("CREATE TABLE USERR"
            +"("+
            "id SERIAL,"+
            "first_name VARCHAR(20),"+
            "middle_name VARCHAR(20),"+
            "last_name VARCHAR(20),"+
            "age INTEGER,"+
            "image_url VARCHAR(250),"+
            "joining_date DATE ,"+
            "country_code INTEGER,"+
            "mobile_no VARCHAR(20),"+
            "email_id VARCHAR(20),"+
            "CONSTRAINT pk_user PRIMARY KEY (id)"+
            ")"
    );
    statement.close();
}

我不知道为什么会发生这种情况,即使它在当地运作良好。

N.B:userr的模式包含'id'作为主键,还有许多其他的。

1 个答案:

答案 0 :(得分:0)

ID列没有链接到序列的默认值,您也没有提供此值。