metaData.getPrimaryKeys () возвращает четыре одинаковые записи, когда ключ один - PullRequest
1 голос
/ 06 ноября 2019

Мой вопрос лежит в русле этого вопроса , но немного по-другому. Я извлекаю первичный ключ для таблицы, используя следующий код в java:

DatabaseMetaData meta = connection.getMetaData();
ResultSet rs = meta.getPrimaryKeys(null, null, "global_settings");
while (rs.next()) {
     System.out.println(rs.getString("COLUMN_NAME"));
}

Таблица global_settings имеет только один столбец первичного ключа, т.е. global_setting_id . Тем не менее, похоже, что цикл выполняется четыре раза, и на выходе получается:

global_setting_id
global_setting_id
global_setting_id
global_setting_id

Однако для таблицы с составным ключом цикл работает нормально, например для таблицы user_info , которая имеет тристолбцы, которые формируют составной первичный ключ, т.е. (user_id, national_id, taxation_id) ,

Цикл обеспечивает вывод в виде:

user_id
national_id
taxation_id

Я использую mysql и драйвер

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>

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

...