Holas haciendo una relacion me da este error
alguien me podria decir a q se debe, o q estoy haciendo mal
saludos
| |||
Respuesta: Error de MYSQL me fijé en todo y todo sigue igual, es q lo q quiero es esto: tengo una tabla intermediaria llamada relacion esta tabla tiene dos llaves foraneas llamadas idfororel y idtemrel estos se ligan con diferentes tablas. idfororel es la que me da problema, ya q la ligo con un campo idforo. idtemrel se liga con idtema. la engine es InnoDB Y los charset me fije y son iguales. No se porqué sera ese problema y gracias por tu respuesta VUN saludos |
| |||
Respuesta: Error de MYSQL Cita: Gracias por tu respuesta, lo raro es q idtemrel e idtema los dos son PK, pero para idfororel e idforo no me lo permite.Lo q hice fue q hice la relacion de B]idforo[/B] a idfororel y si me la aceptó u.u, si alguien desea ayudarme con este problema aqui mi correo: xxxxxxxxxxxxxxx Saludos Última edición por repo316; 08/03/2010 a las 22:54 |
| ||||
Respuesta: Error de MYSQL Por empezar, postea la estructura de las tablas involucradas. De esa forma podríamos estar seguros de por qué no puedes, y qué es lo que realmente intentas hacer. Y por estructura, me refiero al CREATE TABLE(...., y no a que las describas (digo esto porque muchas veces no lo hacen y te mandan descripciones que no dicen nada sobre los problemas). Además de eso, hay que comprobar otra cosa: ¿Esas tablas ya tienen datos?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Error de MYSQL Cita: DROP TABLE IF EXISTS `proyectoforo`.`relacion`; CREATE TABLE `proyectoforo`.`relacion` ( `idtemrel` int(10) unsigned NOT NULL AUTO_INCREMENT, `idtfororel` char(2) NOT NULL, PRIMARY KEY (`idtemrel`,`idtfororel`), KEY `FK_relacion_1` (`idtfororel`), CONSTRAINT `FK_relacion_1` FOREIGN KEY (`idtfororel`) REFERENCES `subforo` (`idforo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Cita: Eso lo saqué del MYSQL QUERRY BROWSERDROP TABLE IF EXISTS `proyectoforo`.`subforo`; CREATE TABLE `proyectoforo`.`subforo` ( `idforo` char(2) NOT NULL, `nombforo` varchar(100) NOT NULL, `descriforo` tinytext NOT NULL, PRIMARY KEY (`idforo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; espero sea eso. Y las tablas no tienen absolutamente nada :S se me olvidaba, lo quiero hacer es un foro, lo cual cuando acceso al foro de Comp Emp le doy crear tema ingreso el id del foro al de tema para q a la hora de hacer la consulta se impriman todos los temas de ese foro |
| ||||
Respuesta: Error de MYSQL El error que mencionas es simple: Estás tratando de crear en la tabla subforo una FK apuntando a la PK de relacion, pero esa PK es de dos campos... y una FK se debe referenciar a toda la clave y no a una parte de ella. Por lo demás...:
Código MySQL:
¿Por qué estás definiendo una PK de dos campos, si ya idtemrel es un campo que puede identificar el registro unívocamente?Ver original Además, al usar un campo auto_increment como parte de una PK, corres el riesgo de que en el campo idtfororel puedan ingresarse datos repetidos, ya que una parte de la PK siempre variará, con lo que la integridad de la PK se mantendría. La idea es que tu modelo de tabla permite esto:
Código MySQL:
Ver original Finalmente: Estás tratando de poner una FK circular, con lo que jamás podrás ingresar datos en esas tablas... Tengo la impresión de que el modelo de datos tiene defectos de diseño... ¿Podrías darnos más datos acerca del esquema de tablas y sus relaciones?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Error de MYSQL es q segun me dijo un profesor necesitaba hacer una tabla de relación ya que cuando hacia un nuevo tema este lo q me daba error es que la llave. se supone que en subforo pueden haber varios temas, y lo que yo hacia antes era que liga la PK de Idforo con un campo en la tabla tema que se llama temforo ambos del mismo tipo y tamaño, y pues como no soy muy bueno para hacer bases de datos u.u. Aun asi gracias por tu respuesta man, mañana ire a consultar a un profesor a ver que me dice. Pondre la solucion aqui si en dado caso hay solucion :S bueno man gracias por todo que mañana tengo exposición y examen. bye |
| ||||
Respuesta: Error de MYSQL Te doy un tip: Supongamos una relación N:N, o sea de muchos a muchos. En tu caso, si cada foro puede tener muchos temas, y diferentes temas pueden aparecer en muchos foros, se requiere una tabla adicional, digamos temas_foros(PK_Temas, PK_foros). Pero si en un mismo foro hay muchos temas, pero cada tema pertenece a un sólo foro, es la PK del foro lo que va en la tabla temas, pero no a la inversa... Siempre la cardinalidad N es la que define dónde va la FK Para tu caso sería:
Código MySQL:
Mas o menos así... Ver original
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Error de MYSQL te agradesco toda la ayuda amigo gnzsoloyo ya vi el error y no era la BD sino una variable la cual q al darle el insert en el php pues llegaba vacia, entonces me salia el error del foreing key, asi q al final no era de BD de datos el problema, respondo hasta ahorita es por que estube madrugando investigando el codigo paso a paso, te pido disculpas y agradecimiento por la ayuda. saludos |
| ||||
Respuesta: Error de MYSQL El 90% de los errores con bases de datos vienen por esos despistes, lo sabemos todos xD. Lo mejor: Saca con echo o printf la sentencia , copiala y pegala en la consola de phpmyadmin y ahi te va a decir en que punto de la sentencia falla, te pones a solucionarla hasta que des con la tecla |
Etiquetas: |