我有这张桌子:
db.define_table('block',
Field('ore_id', 'reference ore'),
Field('location', type='integer', required=True, notnull = True),
Field('x', type='integer'),
Field('y', type='integer'),
Field('block_mass_tn', type='double')
)
和此:
db.define_table('block_processing_line_1',
Field('block_location', 'reference block'),
Field('processing_time_d', type='double'),
Field('concentrate_tn', type='double'),
Field('concentrate_quality', type='double')
)
在表block
中,我有100个条目,id
和location
从1-100开始运行。当我在block_location
为1的情况下向后一个表添加新记录时,它接受它,但是当我尝试添加2或3个左右时,它将不接受它并且它说“FOREIGN KEY约束失败” ”。我有其他表,它们具有相同的字段:Field('block_location', 'reference block'),
但是它们对于高于1的值没有任何问题。这里有什么问题?
另外一件事是我在使用该表之前遇到了同样的问题而且我意识到我输了一个拼写错误:Field('block_location', 'reference ore'),
所以我引用了一个错误的表和那个表ore
有一个条目(因此只接受1而没有别的)。但现在即使我修复它,问题依然存在。在DAL的某处可能会有一些前线的痕迹吗?我在修复后截断了两个表(block
和block_processing_line_1
。
答案 0 :(得分:0)
@Anthony:
您是否已编译应用或关闭了迁移?如果不是,也许 尝试删除block_processing_line_1表。
这解决了!我放下桌子保存了,#34;没有用#34;表并保存,然后它按预期工作。所以这一行:
db.block_processing_line_1.drop()