Ver Mensaje Individual
  #13 (permalink)  
Antiguo 30/03/2005, 08:04
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé si conoces los campos autonuméricos (y unicos) de Msyql .. pero eso ya lo hacen sólos: generar ese autonumérico.

Si tu creas un registro (INSERT INTO ....) con una definición de tu campo tipo "ID" autonumérico .. puedes obtener ese n°generado usando:

mysql_insert_id()

Como para mostrarlo a tu usuario .. o asociarlo en otra tabla para establecer una relación 1-N .. o la que necesites y respetar la "integridad referencial" de los datos.

Con ese n° secuencial . .si quieres le añades otras cosas (cadenas/numeros) para componer tu "código" ..

Realmente yo ya no me complico con "códigos" de ese estilo .. Uso sólo el autonumérico que me arroja la creación del registro y listo .. Pero si tu requieres componer cierto "código" própio .. OK .. Puedes tomar dicho n° autonuméroco como te comenté, añadir lo que requieras y guardarlo en tu BD en otro campo del registro del usuario.

El "bloqueo" de ese estilo se hace con SQL sólo (aunque dependiendo del volumen de cración de esos registros en un instante .. no te será ni necesario usarlo). Concretamente usando las sentencias SQL de Msyql: COMMINT, ROOLBACK y afines. Eso indica a tu BD que bloquee la tabla en uso mientras se está haciendo tu INSERT .. obtiendo el n° autonumérico generado y tal vez un UPDATE antes de terminar lo que llaman "transacción" .. Si hay error, se "deshace" todo lo hecho quedando en su estado inicial todo.

Un saludo,