Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/07/2011, 09:04
Huaskar
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Pregunta last_insert_id para recuperar datos

hola, ojala me puedan ayudar con la siguiente consulta.

si tengo una tabla de la siguiente forma:

Código MySQL:
Ver original
  1. create table tabla(
  2. cod_sup char(5) not null ,
  3. cod_tabla char(5) not null ,
  4. des_tabla varchar(45) not null ,
  5.  
  6. unique index num_auto_unique (num_auto asc) ,
  7. primary key (cod_sup, cod_tabla) );

y quisiera recuperar los datos, incluyendo las llaves primarias, luego de haber hecho un insert utilizando un sp.
(1) seria correcto utilizar el siguiente codigo, al final del sp, para recuperar los datos?
(2) es mejor utilizar el campo auto_increment como primary key o como unique?

Código MySQL:
Ver original
  1. cod_sup,
  2. cod_tabla,
  3. des_tabla,
  4. num_auto
  5. from tabla
  6. where num_auto=last_insert_id();

(3) si quisiera que el campo cod_tabla sea un numero correlativo que dependa del campo cod_sup, como podria hacerlo sin que sea un campo auto_increment? para que se guarde de la siguiente forma:

Código HTML:
Ver original
  1. cod_sup     cod_tabla
  2. 01             00001
  3. 01             00002
  4. 01             00003
  5. 02             00001
  6. 02             00002

podria guardar la siguiente variable, declarada y definida al inicio del sp, en ese campo?

Código MySQL:
Ver original
  1. declare var_cod_tabla char(5);
  2.  
  3. set var_cod_tabla=
  4. (select max(cod_tabla)
  5. from tabla
  6. where cod_sup=param_cod_sup)
  7. ,0)+1
  8. ,5,'0');

muchas gracias por su ayuda