![]() |
crear una llave alfanumerica con un generador
hola bueno tengo una pregunta para hacerles, uso interbase y quiero crear un llave primaria que sea por ej 'EMP' + CODIGO..el codigo deberia ser autoincrementable y lo de adelante seria como un prefijo osea que la la llave seria un conjunto de caracteres..alfanumericos, para esto cree aparte un campo codigo que sea parte de la clave, y le cree un generador de autoincrementable y un trigger para que dispare ese generador antes de insertar. Yo deberia modificar el trigger para que convierte ese codigo generado en caractes..y asignarlo al campo ID principal formado por 'EMP ' + CODIGO. Me podrian decir como hago?...bueno aqui les pongo el triger para ver si esta bien echo tambien ...saludoss :cool:
AS BEGIN /* Trigger body */ if (empmovil."autoID" is null) then empmovil."autoID"= gen_id("EMPMOVIL_autoID_GEN", 1); END |
Usa la función CAST de Interbase:
Esto no lo he probado, pero no te debería dar problemas... Saludos... |
pregunta de duda
tkss..pero estuve pensando...que pasa si aborto la trasaccion esto se genera =? puedo tener problemas de usar autoincrementables si necesito valores unicos? estos disparadores me parece que no se pueden controlar..o si?
|
No hay problema de que se te repitan valores usando generadores. El problema vendría que al abortar una transacción tuvieras saltos en tus llaves primarias. Por ejempo: EMP1, EMP2, EMP4, EMP5, EMP6, EMP8.
Saludos... |
La franja horaria es GMT +2. Ahora son las 10:51:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi