Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como agregar una sequiencia, y cuando se borre algun registro ese valor sea reasignad

Estas en el tema de Como agregar una sequiencia, y cuando se borre algun registro ese valor sea reasignad en el foro de Mysql en Foros del Web. Hola, gente!. Veréis necesito una pequeña ayuda.. Tengo creada una tabla con la siguiente sintaxis. Código: CREATE TABLE MATERIAL ( IDENTIFICADOR_MATERIAL INT NOT NULL AUTO_INCREMENT, ...
  #1 (permalink)  
Antiguo 19/11/2014, 01:29
 
Fecha de Ingreso: noviembre-2014
Ubicación: Toledo
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Exclamación Como agregar una sequiencia, y cuando se borre algun registro ese valor sea reasignad

Hola, gente!.

Veréis necesito una pequeña ayuda..

Tengo creada una tabla con la siguiente sintaxis.

Código:
CREATE TABLE MATERIAL (
	  IDENTIFICADOR_MATERIAL INT NOT NULL AUTO_INCREMENT,
	  IDENTIFICADOR_TIPOMATERIAL INT NOT NULL,
	  SERIAL_NUMBER VARCHAR(50),
	  DESCRIPCION VARCHAR(100),
	  PRESTADO VARCHAR(2),
	  FECHA_ENTRADA DATE,
	  PRIMARY KEY (IDENTIFICADOR_MATERIAL, IDENTIFICADOR_TIPOMATERIAL),
	  INDEX (IDENTIFICADOR_TIPOMATERIAL),
	  FOREIGN KEY (IDENTIFICADOR_TIPOMATERIAL) REFERENCES     TIPO_MATERIAL(IDENTIFICADOR_TIPOMATERIAL)
) ENGINE = InnoDB;
Mi problema es que cuando borro un registro, ese id que corresponderia al "Identificador_material" No se me vuelve a asignar a ningún campo nuevo que meta despues.

¿Como podría hacer para que ese valor se volviera a reasignar?

Muchas gracias.
Un saludo.
  #2 (permalink)  
Antiguo 19/11/2014, 03:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Como agregar una sequiencia, y cuando se borre algun registro ese valor se

Los identificadores sirven para relacionar las tablas entre ellas, si reutilizaras uno automáticamente todas las relaciones que se hubiesen creado previamente quedarían asignadas al nuevo elemento lo que obviamente no seria correcto. (No seria siempre exactamente así pero para que se entienda)

Si quieres reasignar codigos no puedes usar la característica AUTOINC, pero ojo si lo haces debes tener en cuenta el ejemplo anterior y ese codigo no podrá ser PK de la tabla sin mas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 19/11/2014, 05:01
 
Fecha de Ingreso: noviembre-2014
Ubicación: Toledo
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Como agregar una sequiencia, y cuando se borre algun registro ese valor se

Buenos dias quimfv.

Lo que yo pretendo es lo siguiente:

- Agrego un material con identificado 1 (que se genera automaticamente)
-Si este nuevo material lo asigno a algun usuario (No me deja eleminarlo por la clave foranea)

-Si este material aun no a sido asignado ( si que me deja eliminarlo )

Suponemos que el material 1 me equivocado al introducirlo a la base de datos y opto por eliminarlo, todo funciona correctamente pero si paso otra vez a agregar otro material mysql me asignara automaticamente el identificador 2, mientras que en la base de datos no ahi ningun material con el numero 1.

Lo que intento conseguir esque automaticamente mysql asigne otra vez el numero de material 1 al siguiento objeto que de de alta en mi tabla.

No se si me explique correctamente.

Un saludo.
  #4 (permalink)  
Antiguo 20/11/2014, 01:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Como agregar una sequiencia, y cuando se borre algun registro ese valor se

Cita:
No se si me explique correctamente.
Si ya lo hiciste en el primer post. Pero la característica AUTOINC no esta pensada para hacer eso.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: sql-sentencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:51.