【发布时间】:2015-12-23 05:20:54
【问题描述】:
我有这张桌子:
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。
【问题讨论】:
-
您是否编译了应用程序或关闭了迁移?如果两者都没有,可以尝试删除
block_processing_line_1表。
标签: database web2py data-access-layer