DELETE上的ERROR 1136

时间:2016-11-30 16:25:03

标签: php mysql triggers

我有这个代码,当我在HeidiSQL上尝试删除句子时,它给了我这个: “错误1136:列数与第1行的值计数不匹配” 我真的不明白为什么当我有另外2个触发/删除工作完美时会发生这种情况。 这是代码:

$triggersSQL="CREATE TRIGGER dev_cs BEFORE DELETE ON caja_sb FOR EACH ROW BEGIN
        DECLARE cod_est varchar(11);
        DECLARE cod_lej varchar(4);

    SET cod_est = '$codE';
    SET cod_lej = '$cod';

    INSERT INTO caja_sorpresa VALUES (null, '$codCaja', '$anch', '$alt', '$prof', '$color', '$cont', NOW(), '$cod');

    UPDATE estanteria
    SET estanteria.lejas_ocupadas=estanteria.lejas_ocupadas+1
    WHERE estanteria.codigo_estan=cod_est;

    UPDATE leja
    SET leja.ocupacion='1'
    WHERE leja.cod_leja=cod_lej;

    END";

    $conexion->query($triggersSQL);

    $ordenSQL="DELETE FROM caja_sb WHERE codigo_caja='$codCaja'";
    $resultado=$conexion->query($ordenSQL);

变量具有正确的数据。

1 个答案:

答案 0 :(得分:0)

错误说:

  

INSERT INTO caja_sorpresa VALUES(null,'$ codCaja','$ anch','$ alt','$ prof','$ color','$ cont',NOW(),'$ cod');

这意味着,您在VALUES()中写入的值的数量与表中的字段值不对应。 如果要插入数据而不指定每列的值,则必须使用如下语法:

  

INSERT INTO tablename(column1,column2)VALUES(value1,value2);