gpt4 book ai didi

python - 使用 web2py 向外键添加空值时出现 IntegrityError

转载 作者:行者123 更新时间:2023-11-28 19:27:29 24 4
gpt4 key购买 nike

我在尝试将记录插入到名为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)'))

这是我的 table

+-----------+--------------+------+-----+---------+----------------+
| 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 中定义了表格:

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

我认为我遇到的问题在于 web2py,因为我可以直接从 mysql 命令行提示符插入到 Foods 表中,而无需指定 recipe_id。

我是不是漏掉了什么?我是 MySQL 和 web2py 的新手:(

最佳答案

确保您的食物和食谱具有相同的引擎。如果你有不同的引擎,那么就会出现这个问题。

例如:食物(MyISAM)和食谱(InnoDB)会报错。

关于python - 使用 web2py 向外键添加空值时出现 IntegrityError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com