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

Autoincremento ?

Estas en el tema de Autoincremento ? en el foro de Mysql en Foros del Web. Espero puedan brindarme su ayuda ya que no tengo muchos conocimientos en Mysql aun soy un novato: La situacion es la siguiente tengo una tabla ...
  #1 (permalink)  
Antiguo 04/11/2013, 22:02
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Autoincremento ?

Espero puedan brindarme su ayuda ya que no tengo muchos conocimientos en Mysql aun soy un novato:
La situacion es la siguiente tengo una tabla llamada Carrera y una tabla alumno

Código MySQL:
Ver original
  1. create table Carrera (
  2. car_cod char(9) primary key,
  3. car_nom varchar(30));
  4.  
  5. create table Alumno (
  6. alu_cod char(15) primary key,
  7. alu_ape varchar(20),
  8. alu_nom varchar(20),
  9. alu_fechanac date,
  10. car_cod char(9),
  11. foreign key (car_cod) references Carrera (car_cod));

necesito crear un proc. que en la primera tabla carrera el codigo se autogenere por ejemplo: car-001, car-002,car-003 y asi sucesivamente; para la tabla alumno es un poco mas complicado ya que en el proc. de inserccion el codigo del alumno debe ser
*los 3 primeros digitos de la carrera
*el año de nacimiento (2 digitos)
*el sexo (m o f)
*el primer digito del apellido
*el ultimo digito del nombre
*un guion
*un numero correlativo de 3 digitos (por cada serie)
Ejemplo
001-85MRS-001
001-90FCA-002
002-88MAL-001

Última edición por gnzsoloyo; 05/11/2013 a las 10:48
  #2 (permalink)  
Antiguo 04/11/2013, 22:07
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Autoincremento ?

He buscado info y se me ocurrio usar con trigger o un autoincremento sin embargo no sabria como combinarlos todos dentro de un procedimiento
  #3 (permalink)  
Antiguo 05/11/2013, 10:42
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Autoincremento ?

Holas, Cerecas.

Yo usaría un trigger también, en donde ejecutes todas las conjunciones descritas.

Lo que sí cambiaría, sería la estructura de las tablas, de modo que ambas posean una PK independiente (por ej., un autonumérico, para evitar preocuparte de su llenado), dejando el campo del código como un índice único no nulo. Luego, tus consultas las puedes hacer contra ese índice, ya que al ser único igual te sirve para buscar los registros. Esto es para que el trigger modifique ese campo, y no la PK.

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #4 (permalink)  
Antiguo 05/11/2013, 11:46
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Autoincremento ?

te soy sincero no te entendi muy bien, en cuanto a la tabla carrera pensaba en un auto_increment creo que podria ser una solucion el problema lo tengo quizas al concatenar para que aparezca la palabra "car - " y de ahi el codigo que se autoincrementa, mas o menos me podrias dar una idea de como hacer esto... muchas gracias de antemano
  #5 (permalink)  
Antiguo 05/11/2013, 12:53
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Autoincremento ?

Mmmh, en el caso de la tabla Carrera, ahora no veo necesidad de concatenarle el "car-", ya que todos los registros tendrán ese prefijo, no? En ese sentido, como dices, con un autoincremento estaría listo: luego en tus aplicaciones le puedes preconcatenar ese "car-", si es estrictamente necesario no más, claro. El relleno de ceros a la izquierda igual lo puedes obtener por programación, pero en la tabla, lo mejor es que sea un sencillo número no más.

Código sql:
Ver original
  1. CREATE TABLE Carrera (
  2. car_cod SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. car_nom VARCHAR(30));

En cuanto a la otra tabla, ya tienes claros todos los pasos para generar el código de alumno. Sólo es cosa que los pases a un algoritmo y lo implementes dentro del trigger de la tabla ¿sabes trabajar con triggers? La tabla que te proponía yo quedaba algo así (no estoy segura si mi sintaxis está correcta, pero es para que tengas la idea):

Código sql:
Ver original
  1. CREATE TABLE Alumno (
  2. alu_id BIGINT(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. alu_cod CHAR(15) NOT NULL,
  4. alu_ape VARCHAR(20),
  5. alu_nom VARCHAR(20),
  6. alu_fechanac DATE,
  7. car_cod CHAR(9),
  8. UNIQUE INDEX (alu_cod),
  9. FOREIGN KEY (car_cod) REFERENCES Carrera (car_cod));

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #6 (permalink)  
Antiguo 05/11/2013, 13:02
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Autoincremento ?

muchas gracias tengo un par de ideas =D cualquier cosa vuelvo a preguntar
muchas gracias

Etiquetas: tabla
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 00:43.