在使用web2py时,当添加空值到外键时出现完整性错误。

3

在尝试将记录插入名为Foods的表时,我从web2py收到了一个IntegrityError。该表具有对Recipes的外键,但我想添加一行而不带recipe_id。

<class 'gluon.contrib.pymysql.err.IntegrityError'>((1452, u'Cannot add or update a child row: a foreign key constraint fails (`pymeals`.`foods`, CONSTRAINT `foods_ibfk_1` FOREIGN KEY (`recipe_id`) REFERENCES `recipes` (`id`) ON DELETE CASCADE)'))

这是我的表格。
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| name      | varchar(255) | YES  |     | NULL    |                |
| recipe_id | int(11)      | YES  | MUL | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

我使用以下代码在web2py中定义了表格:

我使用以下代码在web2py中定义了表格:

db.define_table('foods',
                Field('name'),
                Field('recipe_id', db.recipes, required=False, notnull=False, requires=None))

我认为我遇到的问题与web2py有关,因为我可以在mysql命令行提示符中直接向表插入记录而不需要指定recipe_id。
我是否遗漏了什么?我对MySQL和web2py都很陌生 :(

你是如何进行插入操作的? - Anthony
1个回答

0

确保您的食品和食谱具有相同的引擎。如果您使用不同的引擎,则会出现此问题。

例如:食品(MyISAM)和食谱(InnoDB)将会产生错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接