чтобы начинаться он покажет структуру моих 3 подмостков
este tabla seria los productos
Producto (
CODIGO int(11),
CANTIDAD int(11)
)
этот серьезный заголовок, требуемый
Pedido (
codigo int(11),
nombre varchar(50),
unix varchar(100)
)
и это была бы таблица подробно опишите заказа
Detalle (
codigo int(11),
producto int(11),
cantidad` int(11)
)
в конце концов зарегистрировав заказ, зарегистрируй заголовок и деталь это реализует хорошо
моя проблема состоит, в том, что удалив заказ, мне нужно, чтобы количество продуктов, зарегистрированных в попрошенной детали они были, они возвратили в таблицу Продукт, я сделал trigger, который теоретически реализовал бы это, но я предполагаю, что и побитый козырем в коде, потому что я удаляю одну Требуемый, и он не обновляет таблицу продукт
CREATE TRIGGER Devolver_Productos_Prueba AFTER DELETE ON Detalle FOR EACH ROW
Update Producto
set Producto.CANTIDAD = (Producto.CANTIDAD + old.cantidad)
where Producto.CODIGO = old.codigo;
я хотел бы, чтобы они помогли мне, спасибо заранее из-за Вашей помощи
В таблице подробно опишите я вижу, что ты помещаешь поля код , продукт , и количество, что дает мне понимать, что поле код - первичный ключ таблицы, я подробно описал вероятно. Сейчас наблюдает trigger в этой части: where Продукт. КОД = old.codigo; не был бы должен быть old.producto? а именно ты был бы должен помещать это так: where Продукт. КОД = old.producto;
Ты должен помнить, что trigger работает из-за каждой линии таблицы Detalle
, которая удаляется, следовательно OLD
ссылается на реестр table Detalle
, который удаляет
В update, который образцы есть один old.cant
, который неправильный основано на таблице Detalle
, правильным был бы OLD.cantidad
То же самое с old.cod
, правильным был бы OLD.codigo
Update Producto
set Producto.CANTIDAD = (Producto.CANTIDAD + old.cantidad)
where Producto.CODIGO = old.codigo;
И это был бы конечный результат