MySQL - generar identificador unico por tabla

 
Vista:

generar identificador unico por tabla

Publicado por Mauricio (2 intervenciones) el 30/09/2016 21:33:54
set @nro = 0;

set @nro = (
SELECT right( IFNULL(NroAsiento,'0'),13) from con_asiento
ORDER BY Id DESC LIMIT 1);

set @nro = CAST(ifnull(@nro,0) AS signed) + 1;

set @cod_nuevo = cast(@nro as char);

set @_Nro_Nuevo = (select concat('CIX',REPEAT('0',13-LENGTH(@cod_nuevo)),@cod_nuevo));

quisiera una funcion o vista o procedimiento en mysql que me devuelva el _Nro_Nuevo y que reciba como parametros el nombre de la tabla, en este caso la tabla es con_asiento pero tengo muchas tablas y no quiero hacer lo mismo en todos los precimientos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

generar identificador unico por tabla

Publicado por Leopoldo Taylhardat (44 intervenciones) el 01/10/2016 15:44:38
Saludos...

Creo que lo siento porque en Mysql no logré que alguien me diera una solución parecida...
En varios foros (incluido esto) comenté que en SqlAnywhere desde hace casi 20 años que trabajo con esa BD y descubrí que postgresql lo tiene, existe lo que se llama "parámetros sustitutivos" es decir transforma el valor de una variable dentro del sql para convertirlo en el texto de la instrucción, en Mysql no lo logré y tampoco alguien me dió solución...

ejemplo:
una variable llamemosla @tabla y contiene el valor "con_asiento", uso doble "pipe" ("¦¦") para convertir la instruccion...

declare @sql varchar (100);
set @sql=''select * from ''+¦¦@tabla¦¦+';'
execute @sql;

entonces la ejecución se convierte en...
select * from con_asiento;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar