无法添加或更新子行:外键约束失败错误

时间:2016-02-24 22:19:17

标签: php mysql

我的代码是:

private function get_parameters_to_array()
{
    $data = array(
        'datahora' => $this->input->post('datahora'),
        'valor' => $this->input->post('valor'),
        'idProduto' => $this->input->post('idProduto'),
        'idFuncionario' => $this->input->post('idFuncionario'),
        'idMesa' => $this->input->post('idMesa')
    );
    return $data;
}

我需要将3个ID值转换为Int,怎么做?我得到的错误就是这个:

  

错误号码:1452

     

无法添加或更新子行:外键约束失败   (tucunaredbpedido,CONSTRAINT fk_Pedido_Funcionario1外国   KEY(idFuncionario)REFERENCES funcionarioid)ON DELETE NO   更新行动没有行动)

     

INSERT INTO PedidodatahoravaloridProduto,   idFuncionarioidMesaativo)价值观('2016-02-24 23:14:16',   '6.50','8','5','2',1)

1 个答案:

答案 0 :(得分:0)

这很简单,它确实是错误的说法:您尝试插入idFuncionario列的值,该列具有{的外键{1}}错了。您可能在父表funcionario.id中没有id 5的任何记录。

您必须先创建此类记录,然后才能从其他表中引用它。

foreign keys的目的是维持the referential integrity,换句话说,数据一致性

您在列funcionario上有外键fk_Pedido_Funcionario1,该列引用了列Pedido.idFuncionario。这意味着funcionario.id中的值不能超过Pedido.idFuncionario中的值,而数据库正在检查它。当您尝试插入不同的值时,它会抛出您收到的错误。

唯一允许的其他值为funcionario.id,但只有在案例列中才能包含此类值(未使用NULL定义)。