我有一个带有 web2py 外键的问题,因为缺乏这方面的文档非常令人沮丧。我在大多数表相关的不同文件中定义表。我曾经使用 db.table_name 来表示外键,但有人告诉我使用“reference tbl_name”。然而,这没有任何区别,我仍然收到错误,因为根据 web2py 的字母顺序规则,在以后的文件中定义的模型会出现错误。看起来按顺序排列表格实际上很重要,这使得引用关键字的使用充其量是无用的。或者我在这里错过了什么。
问问题
88 次
1 回答
0
我假设您正在使用mysql
. 在这种情况下,这是一个mysql
错误。mysql
引发错误 150(外键错误)。所以,这是一个数据库后端问题,而不是一个web2py
问题。请务必检查您的数据库服务器的文档。我如何解决这个问题是在db.py
文件中声明(db.define_table
)首先不需要外键的所有主表,然后继续声明需要外键的表(只需确保外表在引用之前存在)。如果您将单个文件用于不同的表models
文件夹,然后尝试找出哪些表是主表,并确保首先通过在文件名前加上数字来创建它们,以便在引用表中的外键之前,“外”表将已经存在于数据库中。
但是,应该没有问题sqlite
。
于 2012-12-17T07:26:35.787 回答