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 originalCREATE TABLE Carrera (
car_cod SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
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 originalCREATE TABLE Alumno (
alu_id BIGINT(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
alu_cod CHAR(15) NOT NULL,
alu_ape VARCHAR(20),
alu_nom VARCHAR(20),
alu_fechanac DATE,
car_cod CHAR(9),
UNIQUE INDEX (alu_cod),
FOREIGN KEY (car_cod) REFERENCES Carrera (car_cod));
Saludos!