Хранение не-UUID строки в поле UUID в postgresql - PullRequest
1 голос
/ 11 апреля 2019

У меня есть несколько строк, таких как 12344 (4-5-значные числа), которые я хочу сохранить в таблице postgresql с типом данных столбца как UUID.Это столбцы, которые нужно проиндексировать.Из документа кажется, что UUID - это поле, имеющее некоторый формат, такой как a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 с 128-битным количеством.

Так возможно ли хранить строку типа 12344 в поле данных UUID?В настоящее время получено сообщение «Ошибка ввода строки недопустимого типа»

  pstmt.setObject(1,"12344",java.sql.Types.OTHER);

1 Ответ

1 голос
/ 11 апреля 2019

Не напрямую. Но вы можете построить UUID из длинного значения:

    long val = 12344;
    pstmt.setObject(1,new UUID(0, val),java.sql.Types.OTHER);

Обратите внимание, что значение будет "UUID-закодировано", поэтому вы не сможете выполнить некоторые select * from table where val = 12344. Сначала вам нужно будет вычислить соответствующий UUID.

...