Мой вопрос лежит в русле этого вопроса , но немного по-другому. Я извлекаю первичный ключ для таблицы, используя следующий код в 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>
Это немного тривиально, но все еще вызывает беспокойство о назначении, которое я делаю. Это ошибка или проблема на моей стороне?