Q:

capturar variable en um trigger mysql

Buenas noches de verdad gracias por su tiempo, les cuento
 Tengo una tabla gastos con varios campos como idgasto,proveedor,cliente,total y una mas detalle_gasto que tiene por campos idgasto,idproducto hasta hay todo bien,pero la aplicación es web y para algunos controles de información, estoy usando trigger entonces, decidí crear una tabla temporal donde tiene los mismo campos que detalle_gasto excepto idgasto para que el trigger clone los datos de allí a detalle_gasto after insert de gasto.  El problema es como le digo al trigger que clone los datos y que coloque el id correspondiente en el campo idgasto..
.espero haber sido claro y nuevamente gracias

A:

Creo que podrías hacerlo sería la siguiente:
DELIMITER //
CREATE TRIGGER CopiarGastos AFTER INSERT ON gastos
FOR EACH ROW BEGIN  
    INSERT INTO tabla_gastos_copia select * from tabla_gastos where idgasto = NEW.idgasto;
END;//
DELIMITER ;

Básicamente lo que hace es que después de insertar en la tabla tabla_gastos, por cada fila insertada en la tabla tabla_gastos (que será 1) te inserta en la tabla tabla_gastos_copia el mismo registro. 
EDIT: no es obligatorio que la tabla de copia tenga NO tenga id autoincremental, pero desde mi punto de vista para este caso no lo pondría por si en algún momento haces reordenación de id's y demás al borrar campos, podría dar conflictos. 
Espero haber sido de ayuda, saludos!!