【问题标题】:CakePHP saveMany meets foreign key constrain failed error?CakePHP saveMany 遇到外键约束失败错误?
【发布时间】:2012-11-13 17:38:03
【问题描述】:

我尝试 $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_sys.members_questions_answers, 约束 members_questions_answers_ibfk_2 外键 (questions_answer_id) 参考questions_answers (id))

SQL 查询:INSERT INTO dating_sys.members_questions_answers (member_id, modified) 值 (4, '2012-11-14 01:13:27')

我检查了数据库。表 questions_answers id 字段中确实存在 102 和 203。而且我也可以手动将它们插入表格中。正如我检查的那样,外键约束也有效。

而表 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 表由于某种原因没有真正确定。我确实更改了该表的名称及其外键引用。有缓存之类的吗?

任何人都可以帮助或指出一种新的研究方式吗?

【问题讨论】:

  • 模型是否设置为使用树行为?
  • 我发现了问题。我将 $data 数组中的 'answer' 拼错为 'anwser'。

标签: mysql cakephp foreign-keys


【解决方案1】:

是的,它看起来像一个缓存问题。清除 app/tmp/cache/models(或您正在使用的任何缓存引擎)中的模型缓存文件

【讨论】:

  • 我发现了问题。我将 $data 数组中的 'answer' 拼错为 'anwser'。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2011-10-04
  • 2013-11-17
相关资源
最近更新 更多