Logo

Foro sobre los Ciclos Formativos de Grado Medio ( SMR ) y Superior ( ASIR, DAI, DAM y DAW ).

Error en MySQL al crear clave ajena

Foro sobre el módulo > Operaciones con bases de datos ofimáticas y corporativas.


Error en MySQL al crear clave ajena

Notapor alvaro55 el 19 Abr 2010, 20:51

Hola tengo el siguiente problema en MySQL, quiero crear una clave ajena, pero me da un error de sintaxis. Las dos tablas que quiero relacionar son: coches y piezas.
La tabla coches tiene los siguientes parámetros configurados:

Código: Seleccionar todo
create table coches (modelo varchar(24) primary key, potencia int(4)fecha datetime, precio int(4), disponible bool, observaciones varchar(24));


La tabla piezas estos otros parámetros:

Código: Seleccionar todo
create table piezas (codigo_cliente int(4) unsigned primary key auto_increment, disponible bool, informacion varchar(24), web_fabricante varchar(24), precio varchar(24), modelo_coche varchar(24));


Lo siguiente que hago escribir el código necesario para crear la clave ajena que es el siguiente:

Código: Seleccionar todo
alter table coches (modelo varchar(24) primary key, potencia int(4), fecha datetime, precio varchar(24), disponible tinyint(1), observaciones varchar(30), modelo_coche varchar(24), index(modelo_coche), foreign key (modelo_coche) references piezas(modelo_coche);


En el anterior código cuando lo ejecuto me da el siguiente error:

Código: Seleccionar todo
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(modelo varchar(24) primary key, potencia int(4), fecha datetime, precio varchar' at line 1.


Lo estado comprobando varias veces y siempre me aparece el mismo error, si alguien están amable de decirme que es lo que hago mal. Saludo2 y muchas gracias.
Avatar de Usuario
alvaro55
Visitante
Visitante
 
Mensajes: 22
Registrado: 11 Dic 2008, 18:52
Ciclo Formativo: No estudio FP
Curso:
Acceso por: Grad. ESO

Re: Error en MySQL al crear clave ajena

Notapor Kashir el 19 Abr 2010, 23:19

Prueba a importar Debe registrarse para ver este enlace. Gracias por su visita. en una BD nueva.
El script es una exportación de tu script pasado a Debe registrarse para ver este enlace. Gracias por su visita., donde he creado la clave ajena relacionándolo manualmente.

Sin más.

PS: Gracias Newboy por ayudarme a ayudarle. xDDD
Imagen
Imagen
Avatar de Usuario
Kashir
Moderador FP
Moderador FP
 
Mensajes: 1071
Registrado: 11 Dic 2008, 23:20
Ubicación: Córdoba, España
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Prueba de Acceso
Provincia: Cordoba
Instituto: IES Trassierra

Re: Error en MySQL al crear clave ajena

Notapor alvaro55 el 20 Abr 2010, 11:01

Gracias, ahora lo pruebo y comento.
Última edición por alvaro55 el 21 Abr 2010, 16:06, editado 1 vez en total
Avatar de Usuario
alvaro55
Visitante
Visitante
 
Mensajes: 22
Registrado: 11 Dic 2008, 18:52
Ciclo Formativo: No estudio FP
Curso:
Acceso por: Grad. ESO

Re: Error en MySQL al crear clave ajena

Notapor alvaro55 el 20 Abr 2010, 15:18

Lo e probado pero no me funciona, no se que hago mal. La version de MySQL que estoy utilizando es la 5.1.45.
Última edición por alvaro55 el 21 Abr 2010, 16:07, editado 1 vez en total
Avatar de Usuario
alvaro55
Visitante
Visitante
 
Mensajes: 22
Registrado: 11 Dic 2008, 18:52
Ciclo Formativo: No estudio FP
Curso:
Acceso por: Grad. ESO

Re: Error en MySQL al crear clave ajena

Notapor newboy el 20 Abr 2010, 23:39

Yo ese script lo he importado a una base de datos desde phpMyAdmin y no he tenido ningún problema, me crea las 2 tablas y la relación entre ellas mediante el modelo del coche.

¿Qué pasos has seguido para la importación? Te recomiendo instalar el software MySQL WorkBench y verás puedes crear la relación en un momento y de una forma mucho más sencilla

Salu2.
Avatar de Usuario
newboy
Admin & Webmaster
Admin & Webmaster
 
Mensajes: 2046
Registrado: 20 Jul 2008, 16:12
Ubicación: 127.0.0.1
Ciclo Formativo: No estudio FP
Curso: Ninguno

Re: Error en MySQL al crear clave ajena

Notapor alvaro55 el 21 Abr 2010, 16:04

Ya lo e conseguido instalando el programa MySQL WorkBenchy y importando el fichero. Yo lo hacia con MySQL en modo texto y no me funcionaba. Hoy el profesor nos ha dicho como hacerlo en modo texto y seria con la siguiente instrucción que pongo:
Primero hay que crear un índice en la tabla piezas con el campo modelo_coche.

Código: Seleccionar todo
alter table piezas add index(modelo_coche);


Segunda instrucción:

Código: Seleccionar todo
alter table coches add foreign key (modelo) references piezas(modelo_coche);


Gracias por vuestra ayuda. Saludos :)
Avatar de Usuario
alvaro55
Visitante
Visitante
 
Mensajes: 22
Registrado: 11 Dic 2008, 18:52
Ciclo Formativo: No estudio FP
Curso:
Acceso por: Grad. ESO


Volver a OBDOC

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados


cron