PostgreSQL hstore — ошибка при сохранении данных разных типов

Я использую PostGreSQL 9.2 с расширением hstore 1.1.

У меня есть python dict, который содержит данные разных типов, т.е. целое число и символ.

dict = {"type": 1 , "precision": 0 , "width": 20 , "name": "test" }

При сохранении этого словаря в поле hstore я получил ошибку с данными «тест», потому что это не целое число.

Если я сохраню все данные в char, ошибки не будет

dict = {"type": "1" , "precision": "0" , "width": "20" , "name": "test" }

Это нормально, что я могу иметь данные только с уникальным типом в поле hstore? Есть ли способ хранить данные с разными типами?


person Below the Radar    schedule 01.10.2013    source источник


Ответы (1)


В документации Hstore говорится:

Этот модуль реализует тип данных hstore для хранения наборов пар ключ/значение в одном значении PostgreSQL. Ключи и значения — это просто текстовые строки.

Если вы хотите интерпретировать ключи/значения как не строки, вы должны сделать это в Python:

  • преобразовать ваши ключи/значения в строку, прежде чем сохранять их в БД
  • сделать обратную операцию при извлечении данных из БД
person Nigel Tufnel    schedule 01.10.2013