Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2009, 16:06
esse1981
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Relacines entre tablas;

Intento crear una relacion entre la tabla vehiculos y la tabla de modelos de vehiculo.
Primero inserto modelo de vehiculos y despues vehiculos que tiene una clave ajena a vehiculos.
Pero me salta el mysql con un error--> #1005 - Can't create table './proves/vehiculos.frm' (errno: 150)

¡¡¡ Alguien sabe porqué o le ha ocurrido algo similar!!!!!
GRACIAS

---------------------------------
TABLA MODELO_VEHICULOS
---------------------------------
CREATE TABLE modelo_vehiculos (
modelo varchar(50) UNIQUE NOT NULL,
idmodelo serial NOT NULL,
categoria varchar(25) NOT NULL,
unidades integer,
CONSTRAINT cp_modelo PRIMARY KEY( modelo )
) TYPE=InnoDB;

----------------------
TABLA VEHICULOS
---------------------
CREATE TABLE vehiculos (
matricula varchar(8) UNIQUE NOT NULL,
codveh serial NOT NULL,
modelo varchar(50) NOT NULL,
categoria varchar(25) NOT NULL,
costedia double NOT NULL,
numplazas integer,
numpuertas integer,
maletas integer,
radio boolean DEFAULT true,
aire boolean DEFAULT false,
descincidencias varchar(1000),
fecha timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
fechamod timestamp NULL,
reservado boolean DEFAULT false,
alquilado boolean DEFAULT false,
foto longblob NULL,
CONSTRAINT cp_codveh PRIMARY KEY( codveh ),
INDEX (modelo),
CONSTRAINT ca_modelo FOREIGN KEY ( modelo ) REFERENCES modelo_vehiculos (modelo) ON DELETE set null ON UPDATE cascade,
CONSTRAINT ri_matricula CHECK( LENGHT ( matricula )<=8 AND (matricula)>=7),
CONSTRAINT ri_numplazas CHECK( numplazas>0 AND numplazas<10 ),
CONSTRAINT ri_numpuertas CHECK( numpuertas>0 ),
CONSTRAINT ri_costedia CHECK( costedia>0),
CONSTRAINT ri_estado CHECK( categoria LIKE 'turismo' OR categoria LIKE 'furgoneta' OR categoria LIKE 'camion' OR categoria LIKE 'todoterreno')
) TYPE=InnoDB DEFAULT CHARACTER SET utf8;