PostgreSQL hstore - ошибка при хранении данных разных типов
Я использую PostGreSQL 9.2 с расширением hstore 1.1
У меня есть python dict, который содержит данные разных типов, т.е. целое число и символ
dict = {"type": 1 , "precision": 0 , "width": 20 , "name": "test" }
При сохранении этого dict в поле hstore я получил ошибку с данными "test", потому что это не целое число.
Если я сохраню все данные в char, ошибки не будет
dict = {"type": "1" , "precision": "0" , "width": "20" , "name": "test" }
Это нормально, что я могу иметь данные только с уникальным типом в поле hstore? Есть ли способ хранить данные разных типов?
1 ответ
Решение
Документация Hstore гласит:
Этот модуль реализует тип данных hstore для хранения наборов пар ключ / значение в одном значении PostgreSQL. Ключи и значения - это просто текстовые строки.
Если вы хотите интерпретировать ключи / значения как не строки, вы должны сделать это на Python:
- преобразовать ваши ключи / значения в строку перед сохранением их в БД
- сделать обратную операцию при получении данных из БД