Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error en mysql al crear un tabla

Estas en el tema de error en mysql al crear un tabla en el foro de Mysql en Foros del Web. hola amigos ahora los molesto con este problema que tengo, al momento de crear una tabla sale un error con el código 1500 errno 150. ...
  #1 (permalink)  
Antiguo 09/05/2011, 09:41
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
De acuerdo error en mysql al crear un tabla

hola amigos ahora los molesto con este problema que tengo, al momento de crear una tabla sale un error con el código 1500 errno 150.

estube buscando en internet y encontre que tal vez los tipos de campos no sean los mimos o tal vez las tablas no sen del mismo tipo, el caso es que ya revise todo todas las tablas las tengo con el type= innodb y los registros son de tipo int

podrias ayudarme aki les dejo la tabla gracias:

CREATE TABLE HISTORIAL
( CLAVPEDH INT NOT NULL,
CLAVARTH INT NOT NULL,
FECHENTREH INT NOT NULL,
FECHPROPUH INT NOT NULL,
PRIMARY KEY (CLAVPEDH,CLAVARTH,FECHENTREH,FECHPROPUH),
FOREIGN KEY (CLAVPEDH,FECHENTREH,FECHPROPUH) REFERENCES PEDIDO(CLAVPED,FECHENTRE,FECHPROPU),
FOREIGN KEY (CLAVARTH) REFERENCES ARTICULO(CLAVART)
)TYPE = INNODB;

agradecere toda la ayuda de verdad un saludoo..!!!!
  #2 (permalink)  
Antiguo 09/05/2011, 09:54
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: error en mysql al crear un tabla

Hola arturohrdez:

Este tipo de error generalmente se refiere a la parte de las llaves foráneas, publica el script de cómo estás creando tus tablas PEDIDO y ARTICULO, para revisar cada cada uno de los campos.

Saludos
Leo.
  #3 (permalink)  
Antiguo 09/05/2011, 10:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en mysql al crear un tabla

Verifica que las tablas "Articulo" y "Pedido" existan antes de ejecutar esa consulta, y además que las FK se correspondan con las PK de esas tablas en tipos de columna, rango y orden de aparición.
Son los errores más comunes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 09/05/2011, 10:37
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Respuesta: error en mysql al crear un tabla

gracias por su respuesta amigos y aqui les publico mis dos tablas primero e creado la tabla articulo:

CREATE TABLE ARTICULO
( CLAVART INT AUTO_INCREMENT NOT NULL,
NOMART VARCHAR(90) NOT NULL,
REFDIS VARCHAR(70) NOT NULL,
ESTART VARCHAR(70) NOT NULL,
CANART NUMERIC(65) NOT NULL,
DESART TEXT,
CLAVIMGART INT NOT NULL,
PRIMARY KEY(CLAVART),
FOREIGN KEY(CLAVIMGART) REFERENCES IMAGEN(CLAVIMAG),
)TYPE = INNODB;

y despues la tabla pedido:

CREATE TABLE PEDIDO
( CLAVPED INT NOT NULL,
NOMCLIPED VARCHAR(90) NOT NULL,
NOMARTPED VARCHAR(80) NOT NULL,
NOMMAQPED VARCHAR(50) NOT NULL,
FECHENTRE DATE NOT NULL,
FECHPROPU DATE NOT NULL,
CANARTPED NUMERIC(65) NOT NULL,
ARTENTPED NUMERIC(65) NOT NULL,
ARTFALPED NUMERIC(65) NOT NULL,
COMENTPED TEXT,
CLIPEDID INT NOT NULL,
MAQPEDID INT NOT NULL,
ARTPEDID INT NOT NULL,
LINPEDID INT,
PRIMARY KEY(CLAVPED,FECHENTRE,FECHPROPU),
FOREIGN KEY (CLIPEDID) REFERENCES CLIENTE(CLAVCLI),
FOREIGN KEY (MAQPEDID) REFERENCES MAQUILADOR(CLAVMA),
FOREIGN KEY (ARTPEDID) REFERENCES ARTICULO(CLAVART),
FOREIGN KEY (LINPEDID) REFERENCES LINEAPEDIDO(CLAVLP)
)TYPE = INNODB;

mientras seguire intentando con sus sugerencias a ver que se puede hacer muchas gracias a los dos un saludoo...!!!!!
  #5 (permalink)  
Antiguo 09/05/2011, 10:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en mysql al crear un tabla

A priori le veo algunos errores:
1) Los campos FECHENTRE y FECHPROPU son DATE en su tabla origen y son INT en "HISTORIAL". Como te dije deben ser del mismo tipo y en el mismo orden.
2) Si la imagen es de un artículo, la FK de Articulo va en Imagen, y no al revés.
La idea es que la imagen es un atributo del artículo, le pertenece al artículo. Hacer depender al artículo de la imagen hace que primero debas ingresar la imagen y luego el artículo, lo que no tiene mucho sentido.
3) Tengo la impresión de que estás sobrecargando innecesariamente las tablas de FK, como si estuvieses relacionando todo con todo, y puedes terminar generando relaciones de dependencia circular. Ten cuidado con eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 09/05/2011, 11:13
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Respuesta: error en mysql al crear un tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
A priori le veo algunos errores:
1) Los campos FECHENTRE y FECHPROPU son DATE en su tabla origen y son INT en "HISTORIAL". Como te dije deben ser del mismo tipo y en el mismo orden.
2) Si la imagen es de un artículo, la FK de Articulo va en Imagen, y no al revés.
La idea es que la imagen es un atributo del artículo, le pertenece al artículo. Hacer depender al artículo de la imagen hace que primero debas ingresar la imagen y luego el artículo, lo que no tiene mucho sentido.
3) Tengo la impresión de que estás sobrecargando innecesariamente las tablas de FK, como si estuvieses relacionando todo con todo, y puedes terminar generando relaciones de dependencia circular. Ten cuidado con eso.
Uff amigo tienes toda la razón, perdón es que estoy empezando en esto y pues todavía me falla esto, tratare de poner mas atención. jaja

y una duda mas con respecto a la imagen es que quiero hacer como un tipo catalogo de ropa que capture su información y después le asigne la imagen que le corresponde crees que la FOREIGN KEY no debe ir en articulo?
  #7 (permalink)  
Antiguo 09/05/2011, 11:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en mysql al crear un tabla

Cita:
quiero hacer como un tipo catalogo de ropa que capture su información y después le asigne la imagen que le corresponde crees que la FOREIGN KEY no debe ir en articulo?
Entendamos esto: El artículo el el componente primario del sistema. Si no existe el artículo, no existe la foto, es decir, la foto es un componente del producto. ¿Se comprende? No se necesita de la foto para que el producto exista. Por eso la tabla de imagenes es una tabla funcionalmente dependiente del producto, pero no al revés.
Toda entidad (las imagenes en este caso) que dependen funcionalmente de otra se denomina débil y deben llevar la FK de la otra entidad. La dependencia recíproca no existe. Si se da una dependencia recíproca, tienes un error de análisis y un serio problema de implementación.
Simplificando: La imagen depende del artículo y lleva como FK la PK del artículo con el que se relaciona.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: 150, errno, historia, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:03.