Lord Max
unread,Dec 14, 2011, 8:22:41 AM12/14/11You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Ciao a tutti
Sono nuovo di mysql... ho sempre lavorato con Oracle
Devo fare un trigger o una stored procedure che mi permetta di scrivere un file all'inserimento di un nuovo record su una tabella.
Solo che ogni volta mi esce l'errore "Dynamic SQL is not allowed in stored function or trigger"
Tralasciando che non ho una stored function ma una stored procedure immagino il problema sia il trigger.
Vi copio una parte del codice:
-------------------------------
DROP PROCEDURE IF EXISTS write_on_insert_on_jos_vm_product;
DELIMITER //
CREATE PROCEDURE write_on_insert_on_jos_vm_product(IN prod_sku varchar(64))
BEGIN
SET @myCommand := concat("SELECT * INTO OUTFILE 'c:\\file-", DATE_FORMAT(now(),'%Y%m%d-%H%i%s'), ".sql'",
" FIELDS TERMINATED BY ','",
" ENCLOSED BY '§'",
" LINES TERMINATED BY '\n'",
" FROM jos_vm_product p ",
" where p.product_sku = ", prod_sku);
PREPARE stmt FROM @myCommand;
EXECUTE stmt;
END;//
DELIMITER ;
DROP TRIGGER IF EXISTS insert_on_jos_vm_product;
DELIMITER //
CREATE TRIGGER insert_on_jos_vm_product
AFTER INSERT
ON jos_vm_product
FOR EACH ROW
BEGIN
call write_on_insert_on_jos_vm_product(new.product_sku);
END;//
DELIMITER ;
--------------------------
Ho creato la stored procedure perché mi continuava a dare errore con il trigger.
Se eseguo la "query" con il CONCAT funziona senza problemi.
Avete qualche idea su come scrivere un file dandogli un nome univoco?
Grazie infinite