Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2012, 10:48
jarabecafe
 
Fecha de Ingreso: julio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Trigger con LAST_INSERT_ID()

Hola estoy tratando de llenar una tabla copia con con los campos que se ingresan en la tabla original, pero el valor que me envia en el campo id no es el campo que esta insertado en la tabla original.

Código:
-- Trigger DDL Statements
DELIMITER $$

USE `db_system_eurocafe`$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER `db_system_eurocafe`.`Modifica_auditoria_inventario`
BEFORE INSERT ON `db_system_eurocafe`.`t_inventario`
FOR EACH ROW
insert into h_inventario (codigoInv,codigoProducto,proveedor,stock,costoCompra,
precioUnitarioCompra,precioUnitarioVenta,ganancia,usuarioIngreso,
fechaIngreso,usuarioModifica,fechaModifica)

VALUES (codigoInv=LAST_INSERT_ID(),NEW.codigoProducto,NEW.proveedor,NEW.stock,NEW.costoCompra,
NEW.precioUnitarioCompra,NEW.precioUnitarioVenta,NEW.ganancia,NEW.usuarioIngreso,
NEW.fechaIngreso,NEW.usuarioModifica,NEW.fechaModifica)$$
la tabla original es esta:
Código:
CREATE TABLE `t_inventario` (
  `codigoInv` int(11) NOT NULL auto_increment,
  `codigoProducto` varchar(15) NOT NULL,
  `proveedor` varchar(50) default NULL,
  `stock` smallint(3) NOT NULL,
  `costoCompra` double(5,2) NOT NULL COMMENT 'costos de compra total por producto.',
  `precioUnitarioCompra` double(5,2) NOT NULL COMMENT 'precio para cliente',
  `precioUnitarioVenta` double NOT NULL,
  `ganancia` double(5,2) NOT NULL COMMENT 'valor fijo que se adicionara al precio del producto',
  `usuarioIngreso` varchar(15) NOT NULL,
  `fechaIngreso` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `usuarioModifica` varchar(15) NOT NULL,
  `fechaModifica` datetime NOT NULL,
  PRIMARY KEY  (`codigoInv`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=47 ;
la tabla copia es esta:
Código:
-- 
-- Estructura de tabla para la tabla `copia_inventario`
-- 

CREATE TABLE `h_inventario` (
  `id` int(11) NOT NULL auto_increment,
  `codigoInv` int(11) NOT NULL,
  `codigoProducto` varchar(15) NOT NULL,
  `proveedor` varchar(50) NOT NULL,
  `stock` smallint(3) NOT NULL,
  `costoCompra` double(5,2) NOT NULL COMMENT 'costos de compra total por producto.',
  `precioUnitarioCompra` double(5,2) NOT NULL COMMENT 'precio para cliente',
  `precioUnitarioVenta` double NOT NULL,
  `ganancia` double(5,2) NOT NULL COMMENT 'valor fijo que se adicionara al precio del producto',
  `usuarioIngreso` varchar(15) NOT NULL,
  `fechaIngreso` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `usuarioModifica` varchar(15) NOT NULL,
  `fechaModifica` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=50 ;
el campo codigoInv es el que me intersa que me guarde tal cual se genera en la tabla original, pero me envia un dato que nada que ver

alguna idea, para solucionar este problem.

Gracias.