我有这个代码,当我在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);
变量具有正确的数据。
答案 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);