none
consulta sobre trabajar con clave de negocios

    Pregunta

  • hola tengo una duda respecto a si yo tengo un tabla con la clave primaria autoincremental (clave subrogada) y luego un campo clave único no autoincremental (clave de negocio) como hago para que se incremente de manera óptima?? mi planteo es el siguiente, voy a dar un ejemplo de un tabla cualquiera:

    una tabla historia clínica : clave primaria idHistoriaClinica tipo int autoincremental clave única numLegajo

    cada vez que voy a insertar un registro tendría que comprobar si hay registros y, en caso de que haya, ver el ultimo valor de numLegajo, si no hay registro entonces comienza desde 1

    hay alguna forma de evitar esto??, es optimo hacerlo así??

    saludos


    viernes, 1 de junio de 2018 15:19

Respuestas

  • Para tener mas rendimiendo me conviene crear un SP que realice eso, verdad?
    Puedes hacer un SP si lo deseas, pero no es imprescindible. Si lo haces a una sentencia ad-hoc y está bien parametrizada, se quedará guardada en el caché de procedimientos después de la primera ejecución, con lo que las sucesivas ejecuciones tendrán el mismo rendimiento que si la hubieras encapsulado en un SP.
    sábado, 2 de junio de 2018 8:16

Todas las respuestas

  • Si exiges que la clave de negocio sea siempre secuencial, sin dejar ningún "hueco", entonces efectivamente tienes que buscar el último valor, incrementarlo, y grabarlo, todo ello dentro de una transacción. Si tienes problemas de rendimiento, puedes recurrir a grabar el último valor en una tabla auxiliar. Igualmente tendrías que hacer la lectura, incremento y grabación dentro de una transacción.

    viernes, 1 de junio de 2018 18:08
  • Si exiges que la clave de negocio sea siempre secuencial, sin dejar ningún "hueco", entonces efectivamente tienes que buscar el último valor, incrementarlo, y grabarlo, todo ello dentro de una transacción. Si tienes problemas de rendimiento, puedes recurrir a grabar el último valor en una tabla auxiliar. Igualmente tendrías que hacer la lectura, incremento y grabación dentro de una transacción.


    Para tener mas rendimiendo me conviene crear un SP que realice eso, verdad?
    viernes, 1 de junio de 2018 19:46
  • Para tener mas rendimiendo me conviene crear un SP que realice eso, verdad?
    Puedes hacer un SP si lo deseas, pero no es imprescindible. Si lo haces a una sentencia ad-hoc y está bien parametrizada, se quedará guardada en el caché de procedimientos después de la primera ejecución, con lo que las sucesivas ejecuciones tendrán el mismo rendimiento que si la hubieras encapsulado en un SP.
    sábado, 2 de junio de 2018 8:16