Buenas tardes:
No he podido probar lo que me aconsejaron, pero esta tarde quiero dedicarle un rato.
Antes de nada, voy a comentar cómo está montado hasta ahora, porque encaja en la 'definición' que propuesta.
Para el alta de presupuestos, se utilizan tres tablas:
1- Cabecera, que recoge el idCliente (asociado a la tabla de clientes), la fecha de alta del presupuesto y el autonumérico para el idPresupuesto.
2- Temporal, recoge los datos registrados, mientras se define el presupuesto. En esta se registra la referencia, el detalle o descripción, la cantidad, el precio unitario y el impuesto (porcentaje), así como el idDetalle, para el control y posible edición o borrado de línea.
3- Por último, está la de detalle, que es donde se vuelca la anterior. Tiene los mismo campos, pero además incluye el idPresupuesto y no recuerdo si añadí el idCliente.
Lo único que no termino de entender es la parte:
Cita: Si los valores de subitem recibidos no vienen de la tabla origen, entonces hay que poner un TRIGGER similar a este:
Código MySQL:
Ver original SET NEW.SUBITEM
= (SELECT MAX(SUBITEM
) FROM LM_detallePresupuesto
WHERE idPresupuesto
=NEW.idPresupuesto
) + 1;
DELIMITER ;
Obviamente, este script hace referencia a un campo "SUBITEM" que debería existir, o llamarse de otra forma.
El concepto de 'subitem', supongo que será una especie de variable contandor para cada línea del bucle. Pero no entiendo exactamente el:
Cita: Si los valores de subitem recibidos no vienen de la tabla origen,
A qué te refieres con no vienen de la tabla origen.
Muchas gracias por todo y esta tarde a ver qué progresos hago. También quiero meterlo en un trans commit o rollback, para evitar desastres ante posibles cortes de conexión en pleno registro
Un saludo.