Cita:
Iniciado por gnzsoloyo
Para poder definir una FK en una tabla, ambos campos (PK de origen y campo FK) deben ser del mismo tipo en todos sus aspectos.
En tu ejemplo estás cruzando un campo VARCHAR(50) con un campo INT. ¿Cómo quieres que los pueda igualar? Es como poner que una manzana y una tuerca fuesen iguales.
Además, no puedes usar un campo AUTO_INCREMENT en una tabla MySQL sin que el mismo sea definido como PRIMARY KEY, por lo que en principio tampoco puedes crear la tabla de esa forma.
Si lo que quieres es relacionarla por el nombre de la empresa y no por la PK, el nombre debe ser declarado como UNIQUE, caso contrario no podrás hacer eso:
muy buenas...
Pues añadiendo datos ala base de datos no se como pero me la he cargado, me ha desaparecido la tabla anuncios...
El caso es que la habia creado con el código este que pusiste, que iba perfecto.
Pues la he borrado y la intento volver a hacer y me da error, me pone lo siguiente:
A ver si me echais una mano que me estoy volviendo loco.
Código PHP:
Error
consulta SQL:
CREATE TABLE `cliente` (
`id_cliente` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`empresa` VARCHAR( 50 ) DEFAULT NULL ,
`telefono` VARCHAR( 12 ) DEFAULT NULL ,
`email` VARCHAR( 100 ) DEFAULT NULL ,
`descripcion` VARCHAR( 250 ) DEFAULT NULL ,
PRIMARY KEY ( `id_cliente` ) ,
UNIQUE KEY `empresa` ( `empresa` )
) ENGINE = INNODB DEFAULT CHARSET = latin1;
MySQL ha dicho:
#1064 - 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 '`cliente` (
 `id_cliente` INT(11) NOT NULL AUTO_INCREMENT,
 `empresa` VARC at line 1