#java #postgresql-9.4
#java #postgresql-9.4
Вопрос:
У меня есть несколько строк, таких как 12344 (4-5-значные числа), которые я хочу сохранить в таблице postgresql с типом данных столбца как UUID. Это столбцы, которые необходимо проиндексировать. Из документа кажется, что UUID — это поле, имеющее некоторый формат, например a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11, с количеством 128 бит.
Итак, возможно ли сохранить строку, подобную 12344, в поле данных UUID? В настоящее время появляется «ошибка ввода строки недопустимого типа»
pstmt.setObject(1,"12344",java.sql.Types.OTHER);
Комментарии:
1. Нет, невозможно. Столбец с типом данных
uuid
не принимает недопустимые UUID.2. Хорошо, спасибо за подтверждение
Ответ №1:
Не напрямую. Но вы можете создать UUID из длинного значения:
long val = 12344;
pstmt.setObject(1,new UUID(0, val),java.sql.Types.OTHER);
Обратите внимание, что значение будет «UUID-encoded», поэтому вы не сможете что-то сделать select * from table where val = 12344
. Сначала вам нужно будет вычислить соответствующий UUID.