2011-07-09 1 views
3

という名前のテーブルにレコードを挿入しようとしたときにweb2pyからIntegrityErrorを受信して​​います。。テーブルにレシピへの外部キーがありますが、recipe_idなしの行を追加したいと思います。私は私ができるようweb2pyのとうそを持っていますこの問題を信じるweb2pyを使用して外部キーにnull値を追加するときのIntegrityError

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

<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)')) 

この

は、私は次のコードを使用してのweb2pyでテーブルを定義している

+-----------+--------------+------+-----+---------+----------------+ 
| 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 |    | 
+-----------+--------------+------+-----+---------+----------------+ 

私のテーブルですrecipe_idを指定せずにmysqlコマンドラインプロンプトから直接Foodsテーブルに挿入してください。

ここに何か不足していますか? (フーズ(MyISAMテーブル)とレシピ:。。私はあなたが別のエンジンを持っている場合、この問題が発生したことになるMySQLとのweb2py :(

+0

どうやってインサートをやっていますか? – Anthony

答えて

0

あなたの食品とレシピは、同じエンジンを持っていることを確認しに新たなんだ

例: InnoDB)はエラーを返します