在尝试将记录插入名为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都很陌生 :(