0

$ this-> MembersQuestionsAnswer-> saveMany($ data)を試してみます。

そして$dataはこれです:

array(
    (int) 0 => array(
        'member_id' => '4',
        'questions_anwser_id' => '102'
    ),
    (int) 1 => array(
        'member_id' => '4',
        'questions_anwser_id' => '203'
    )
)

その後、エラーが発生しました

エラー:SQLSTATE [23000]:整合性制約違反:1452子行を追加または更新できません:外部キー制約が失敗します(dating_sysmembers_questions_answers、CONSTRAINT members_questions_answers_ibfk_2FOREIGN KEY(questions_answer_id)REFERENCES questions_answersid))

SQLクエリ:INSERTINTO dating_sysmembers_questions_answersmember_idmodified)VALUES(4、 '2012-11-14 01:13:27')

データベースをチェックしました。102と203の両方がテーブルquestions_answersidフィールドに存在します。また、手動でテーブルに挿入することもできます。私がチェックしたように、外部キー制約は機能します。

そして、テーブルmembers_questions_answersテーブルDDLは

CREATE TABLE `members_questions_answers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `member_id` int(10) unsigned NOT NULL,
  `questions_answer_id` int(10) unsigned NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `member_fk` (`member_id`) USING BTREE,
  KEY `questions_answer_fk` (`questions_answer_id`) USING BTREE,
  CONSTRAINT `members_questions_answers_ibfk_2` FOREIGN KEY (`questions_answer_id`) REFERENCES `questions_answers` (`id`),
  CONSTRAINT `members_questions_answers_ibfk_1` FOREIGN KEY (`member_id`) REFERENCES `members` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

何らかの理由でquestions_answersテーブルが実際には識別されていないように感じます。このテーブルの名前とその外部キー参照を変更しました。キャッシュか何かありますか?

誰かが私を助けたり、新しい調査方法を教えてもらえますか?

4

1 に答える 1

0

はい、キャッシュの問題のようです。app/tmp/cache/models (または使用しているキャッシュ エンジン) のモデル キャッシュ ファイルをクリアします。

于 2012-11-13T18:11:00.517 に答える