Python cdecimal.Decimal и SQLAlchemy _mysql_exceptions.Warning - PullRequest
1 голос
/ 11 марта 2012

Я создаю приложение django, которое использует SQLAlchemy поверх MySQL. Я использую cdecimal вместо встроенного десятичного. В одной из моих таблиц у меня есть столбец с числовым значением (value = Column(Numeric(10, 5)). Когда я создаю новую запись для этой таблицы в приложении django со следующим эхо-запросом SQL:

INSERT INTO my_table (date, value) VALUES (2012-03-11, 875334.670)

Это вызывает следующее исключение при коммите:

_mysql_exceptions.Warning: Out of range value for column 'value' at row 1  

Когда я выполняю тот же запрос в клиенте mysql, никаких проблем не возникает. Я даже попытался обернуть код, который добавляет запись с:

import warnings
from sqlalchemy import exc as sa_exc
with warnings.catch_warnings():
        warnings.simplefilter("ignore", category=sa_exc.SAWarning)

Что происходит?

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Попробуйте это:

INSERT INTO my_table (date, value) VALUES ('2012-03-11', 875334.670)
0 голосов
/ 15 марта 2012

Вот вопрос:

>>> import cdecimal
>>> cdecimal.Decimal(1.23)
Decimal('1.229999999999999982236431605997495353221893310546875')
>>> cdecimal.Decimal('1.23') 
Decimal('1.23')
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...