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:

  • преобразовать ваши ключи / значения в строку перед сохранением их в БД
  • сделать обратную операцию при получении данных из БД
Другие вопросы по тегам