xheirt
@xheirt
Java, Python

Почему при получении данных они не заносятся в бд?

Доброго времени суток! Сделал классическую регистрацию, пользователь вводит лог и пар и они должны заноситься в бд, но этого не происходит из за того что поле user_id нулевое
63446faff158b901938843.png
при том, что оно заполняется автоматически, начиная с 1
63446fed56ef4682226176.png
psInsert = connection.prepareStatement("INSERT INTO users (username, password) VALUES (?, ?)");
                psInsert.setString(1, username);
                psInsert.setString(2, password);
                psInsert.executeUpdate();

                changeScene(event, "loader-in.fxml", "Welcome!", username);

Ошибка, которую я получаю на выходе:
ERROR: null value in column "user_id" of relation "users" violates not-null constraint
  �����������: Failing row contains (null, 123, 123).
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 2
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Ошибка в том что колонка id не имеет значения по умолчанию. Если Вы хотите использовать автоматическую нумерацию (AUTO INCREMENT). то можете модифицировать таблицу следующим образом:
ALTER TABLE users ALTER COLUMN user_id ADD GENERATED BY DEFAULT AS IDENTITY;


sql editor online
Ответ написан
в постгрес уникальные ключи делаются через
serial

https://flaviocopes.com/postgres-auto-increment-pr...

в новых таблицах просто указать
CREATE TABLE data ( id serial PRIMARY KEY NOT NULL, key varchar(100) NOT NULL, value varchar(250) NOT NULL);

миграция колонок типа integer в serial описана в

https://stackoverflow.com/questions/23578427/chang...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы