0
我从与主键许多表旧的数据库迁移数据等被定义:Django的DecimalField查找与MySQL不工作
`id` decimal(26,0)
id列将包含看起来像值:
20080313154354198004
20081217165552136057
2008080416222952067
20060510151423191000
20060510151423191000
20070710143455874025
200806239353171091
做查询:
Release.objects.raw("SELECT id from games_release where legacy_id = 2008050812286746069")
有时会成功,有时失败。在失败的情况下,我可以从db.connection.queries中捕获查询,将其粘贴到MySQL控制台中,查询将成功。我想象的是DECIMAL类型是如何在堆栈的不同层次上处理的(ORM - > DB driver - > server)。这似乎是有关,但我还没有与任何CAST运气()为止:
http://dev.mysql.com/doc/refman/5.1/en/type-conversion.html
上使查询任何帮助的可靠工作大加赞赏。
编辑 其中的一块拼图我忘了提:我试图对存储在原先从旧表拉到一个表查询的十进制值。例如:
class OldModel(db.models):
id = models.DecimalField(decimal_places=0, max_digits=36)
class NewModel(db.models):
id = models.DecimalField(decimal_places=0, max_digits=36)
old = <some instance of OldModel>
new = NewModel.objects.create(id=old.id)
然后过了一段时间,试图通过objects.raw()选择“new”可能会失败。
你应该接受你自己的答案,让其他人知道解决办法已经找到。 – Mike 2010-07-10 07:15:10
完成,谢谢。 StackOverflow在接受你自己的答案时强加一段等待时间,否则我会尽快完成它:) – 2010-07-12 01:36:08