2016-11-30 95 views
-1

我有这段代码,当我尝试使用HeidiSQL上的删除语句时,它给了我: “错误1136:列计数与第1行的值计数不匹配” 我不太明白为什么这是发生在我有另一个2触发器/删除,完美的作品。 这是代码:DELETE上的错误1136

$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); 

变量有正确的数据。

+0

多少列在表中?你传递了9个值。您可以尝试在INSERT查询中指定列。 – aynber

+0

OMG你说得对,确定这是一个非常愚蠢的错误,对不起 – user7142440

回答

0

错误说:

INSERT INTO caja_sorpresa VALUES(NULL, '$ codCaja', '$ ANCH', '$ ALT', '$教授', '$色', '$续' ,NOW(),'$ cod');

这意味着,您在VALUES()中写入的值的数量与表中字段的值不对应。 如果不想为每列指定值来插入数据,比你将不得不使用语法,如:

INSERT INTO表名(列1,列2)VALUES(值1,值2);

+0

非常感谢! – user7142440