Зачем и для чего нужны сгенерированные ключи суррогатного ключа базы данных? - PullRequest
2 голосов
/ 01 июля 2019

У меня есть база данных Postgres, и я пишу Java-программу, которая будет запрашивать, вставлять, обновлять и удалять данные из нее.Некоторые из моих таблиц имеют суррогатные ключи, которые БД автоматически увеличивает.

Я использую метод getGeneratedKeys(), чтобы получить ключ последнего вставленного кортежа.Но я не понимаю, зачем мне эти ключи и что с ними делать?

Я могу вставить данные без получения этих ключей.

// Works as expected and gives me the last key.
PreparedStatement prepStmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
....
ResultSet rs = prepStmt.getGeneratedKeys();
            if (rs.next()) {
                this.lastID = rs.getInt(1);
            }

Какова цель и/ или значение этих сгенерированных ключей?

1 Ответ

3 голосов
/ 01 июля 2019

Если вы вставляете в более чем одну таблицу, у которой есть внешний ключ к другой таблице.

Вам понадобится ключ, на который есть ссылка, для вставки, а затем также в столбец внешнего ключа второй таблицы.

Внешний ключ идентификатора таблицы A для идентификатора таблицы B

Вставьте таблицу B и используйте тот же идентификатор при вставке в таблицу A

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...