documentazione dice cheerrore imprevisto nel grilletto quando esportare
Non ci possono essere due trigger per una determinata tabella che hanno lo stesso tempo di azione grilletto ed evento.
Io uso mysql 5.5.16. Ho creato due trigger. upd_check1
e sale_tri
. Sono sicuro che i miei due trigger eseguono due diversi tavoli sull'evento INSERT
. Ma perché ottengo questo errore in entrambi i trigger. quando provo ad esportare database (phpmyadmin non mostra errore ma mysql workbench, heidisql, browser di query mostra errore).
SQL Error (1235): Questa versione di MySQL non supporta ancora 'multipla innesca con lo stesso tempo di azione e di eventi per un tavolo'
Qui il mio upd_check1
grilletto
--
-- Triggers `product_purchases`
--
DROP TRIGGER IF EXISTS `upd_check1`;
DELIMITER //
CREATE TRIGGER `upd_check1` AFTER INSERT ON `product_purchases`
FOR EACH ROW BEGIN
DECLARE X INTEGER;
SET X = (SELECT product_id FROM product_stock where product_id = NEW.product_id);
IF NEW.product_id =X THEN
UPDATE
product_stock AS S,
product_purchase_item AS I,
product_purchases AS P
SET
S.product_total_quantity=S.product_total_quantity+I.quantity
WHERE
S.product_id=I.product_id
AND
I.product_purchase_item_id=P.product_purchase_item_id
AND
P.product_purchase_id=NEW.product_purchase_id;
ELSE
INSERT INTO
product_stock (product_id,product_total_quantity)
SELECT
product_id, quantity
FROM
product_purchase_item
WHERE
product_purchase_item_id=NEW.product_purchase_item_id;
END IF;
END
//
DELIMITER ;
e qui il mio sale tri
grilletto
--
-- Triggers `product_sales`
--
DROP TRIGGER IF EXISTS `sale_tri`;
DELIMITER //
CREATE TRIGGER `sale_tri` AFTER INSERT ON `product_sales`
FOR EACH ROW BEGIN
DECLARE X INTEGER;
SET X = (SELECT product_id FROM product_stock where product_id = NEW.product_id);
IF NEW.product_id =X THEN
update product_stock as s,
product_sale_item as i,
product_sales as p
SET s.product_total_quantity=s.product_total_quantity-i.quantity
WHERE s.product_id=i.product_id AND
i.product_sale_item_id=p.product_sales_item_id AND
p.product_sales_id=NEW.product_sales_id;
END IF;
END
//
DELIMITER ;
Sei sicuro che quelle tabelle non abbiano già attivatori? –
sì. uso solo sopra due trigger. – Imran
Si ha un errore durante * l'esportazione * del DB, o mentre * si importa *? –