Я миграции базы данных MySQL на PostgreSQL и я столкнулся с тривиальной задачейPostgreSQL, конвертировать беззнаковое число (от MySQL) подписанному (например, 65535 -32768 для SMALLINT)
база данных хранит столбец hash_something
, который является unsigned integer
на MySQL, этот хэш представляет собой 32-битный шумовой хэш v3
Проблема в том, что теперь я не могу найти способ преобразования этих чисел в подписанную версию.
Конечно обходной путь будет использовать BIGINT, так что он подходит, но это займет бы гораздо больше места и замедлить запросы (как у нас есть сотни миллионов подряда)
Так есть ли способ в MySQL или Postgresql, чтобы сделать преобразование, поскольку мне все равно, что это «оптимизированные типы для хранения 32 бит»?
Что происходит, когда вы не конвертировать? – wvdz
@wvdz PostgreSQL жалуется, что значение вне диапазона (я экспортировал данные как CSV из MySQL и реимпортировал его PostgreSQL) –