Página 1 de 1

Error en MySQL al crear clave ajena

NotaPublicado: 19 Abr 2010, 20:51
por alvaro55
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.

Re: Error en MySQL al crear clave ajena

NotaPublicado: 19 Abr 2010, 23:19
por Kashir
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

Re: Error en MySQL al crear clave ajena

NotaPublicado: 20 Abr 2010, 11:01
por alvaro55
Gracias, ahora lo pruebo y comento.

Re: Error en MySQL al crear clave ajena

NotaPublicado: 20 Abr 2010, 15:18
por alvaro55
Lo e probado pero no me funciona, no se que hago mal. La version de MySQL que estoy utilizando es la 5.1.45.

Re: Error en MySQL al crear clave ajena

NotaPublicado: 20 Abr 2010, 23:39
por newboy
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.

Re: Error en MySQL al crear clave ajena

NotaPublicado: 21 Abr 2010, 16:04
por alvaro55
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 :)