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

[SOLUCIONADO] Como poner una relacion de tablas en CASCADE

Estas en el tema de Como poner una relacion de tablas en CASCADE en el foro de Mysql en Foros del Web. Hola amigo estoy tratando de hacer relaciones de tablas lo bueno es que lo logro hacer pero estoy usando phpadmin 10 le posteo uno foto ...
  #1 (permalink)  
Antiguo 06/05/2016, 15:11
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Como poner una relacion de tablas en CASCADE

Hola amigo estoy tratando de hacer relaciones de tablas lo bueno es que lo logro hacer pero estoy usando phpadmin 10 le posteo uno foto por que no se si la relación que haga contiene la configuración de On Delete correcta.
es diferente en esta versión


Cuando intento hacer la configuración me da este error .



error: Error creating foreign key on email (check data types)
  #2 (permalink)  
Antiguo 06/05/2016, 15:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Como poner una relacion de tablas en CASCADE

las 2 columnas deben de ser del mismo tipo y longitud
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/05/2016, 10:38
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Lo siento pero que Que es una longitud ? donde se encuentra eso ?
  #4 (permalink)  
Antiguo 07/05/2016, 10:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Una FK tiene que apuntar a una PK de otra tabla y debe también ser del mismo tipo de dato, exactamente el mismo, en rango si es numérico, y en longitud y charset si es de caracteres.
¿Se entiende?
En este segundo caso no puedes apuntar un campo VARCHAR (100) a otro que sea VARCHAR (120), por ejemplo. No son iguales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 07/05/2016, 11:21
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Lo hago asi mismo tiene su key y es mismo varchar.
Cuando lo hago en la opciones que están arriba en internal relation me sale bien, pero no se si es cascada como lo quiero. Entonces cuando intento llenarla abajo donde dice foreign key constraints me sale el error que es donde se puede poner Cascada.
Yo dejo vacío donde dice constraints name abajo no se lo que va en ese lugar.
  #6 (permalink)  
Antiguo 07/05/2016, 12:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Hazlo por código, no o hagas por esa herramienta.
No se aprende bien haciendo las cosas con front-end.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 07/05/2016, 15:02
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

ok y como seria el codigo no se mucho de mysql code
  #8 (permalink)  
Antiguo 07/05/2016, 16:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Cita:
Iniciado por wilson_romero Ver Mensaje
ok y como seria el codigo no se mucho de mysql code


Wilson:
En el mismo sitio y de la misma forma que nos manejamos todos los que trabajamos en BBDD... leyendo el manual de referencia.

https://dev.mysql.com/doc/refman/5.7/en/sql-syntax.html
https://dev.mysql.com/doc/refman/5.7...ter-table.html
https://dev.mysql.com/doc/refman/5.7...eign-keys.html

Por otro lado, en las capturas de pantalla que se ven en tu primer post no nos estás mostrando la definicion de los tipos de columna que tiene cada tabla, por lo que es imposible saber si realmente son tan iguales como dices.

Podrías al menos poner 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)
  #9 (permalink)  
Antiguo 07/05/2016, 17:32
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Gracias por la paciencia
aqui esta intentando hacer bien la relación de tablas con cascade


aqui las longitudes de las tablas.
Esta con el campo user


Esta con el campo user
  #10 (permalink)  
Antiguo 07/05/2016, 19:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Tu campo NICK en su tabla origen NO ES PK, y si no lo declararste UNIQUE entonces no podría usarse para referencias de FK.
Además, la información de esas capturas de pantalla es incompleta e ineficiente.
Necesitamos ver los CREATE TABLE de cada tabla, no esas pantallas.

Por favor, concentrémonos en el SQL, que es lo que esta detrás del PhpMyadmin sin que tu lo veas. Allí está el tema. Al usar el PhpMyadmin en realidad no estas viendo la base y las queries que se ejecutan.

Suponiendo que tus tablas se llamen realmente "post" y "user" ejecuta esto:

Código MySQL:
Ver original 
y esto:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE `user`;

A partir de alli vereremos que se puede hacer, pero desde ya, si el campo "nick" no es PK y tampoco está indexado como UNIQUE, no podrás crear esa FK de ninguna forma, con o sin CASCADE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/05/2016 a las 08:25
  #11 (permalink)  
Antiguo 09/05/2016, 12:18
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Gracias por la ayuda me estoy documentando un poco de SQL

Esta es código de la tabla pos

Código MySQL:
Ver original
  1. post
  2. CREATE TABLE `post` (
  3.  `id` int(11) NOT NULL AUTO...

Codigo tbla user

Código MySQL:
Ver original
  1. usuarios
  2. CREATE TABLE `usuarios` (
  3.  `id` int(11) NOT NULL ...
  #12 (permalink)  
Antiguo 09/05/2016, 12:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Está incompleto ese resultado.
phpMyadmin te muestra un pedazo del texto cuando el contenido de un campo es mayor a cierta cantidad de caracteres. Eso ya deberías haberlo notado, me parece.
Expande la columna del resultado y copia TODO el contenido.

Supongo que ya habrás visto esta "T" contenida entre una especie de flechas: "<--T-->"... Es para EXPANDIR.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 09/05/2016, 13:17
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

No veo eso que dices :(
  #14 (permalink)  
Antiguo 09/05/2016, 13:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

¿Y probaste desplegar el +Options?

Posdata: ¿Podrías EVITAR postear imágenes tan grandes?
SI es necesario, postea sólo la parte de la imagen que sea RELEVANTE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 09/05/2016, 13:54
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Lo intente hacer con el mismo phpadming en una opción que bien grafica esta no se si la conocen
pero me dio este error

Error foreign key relation could not be added
#1505 can't create table room:#sql-14b01fe
(error 150 "foreign key constraint is incorrectly formed"
  #16 (permalink)  
Antiguo 09/05/2016, 13:59
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Ok ya con las option tengo todo el código
Codigo usuarios



Codigo post

  #17 (permalink)  
Antiguo 09/05/2016, 14:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Por favor.... COPIA LOS CÓDIGOS, NO LAS PANTALLAS.

Bueno, en principio, la cosa es como ya te decía: tu campo NIK no es ni PK, ni UNIQUE, por lo que no puedes crear una FK desde la tabla POST a la USERS con el.
Así de simple.

Recuerda la definición de FOREIGN KEY: Es un campo o conjunto de campos que apunta a la PRIMARY KEY de otra tabla.
Si la PK de la tabla referida es compuesta, la FK debe estar compuesta por la misma cantidad de campos, del mismo tipo y en el mismo orden en que está la PK.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #18 (permalink)  
Antiguo 17/05/2016, 11:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como poner una relacion de tablas en CASCADE

Gracias a todos por comentar ya encontre la forma de hacerlo como quería muchas gracias gnzsoloyo y todo los demás.
Aquí dejo como lo logre espero que le sirva a alguien que no sepa me gustaria aprende a codiar Mysql pero apenos estoy aprendiendo php
Como hacer relaciones de base de datos phpMyadmin 2016 (version 10.1.9 Maria)
Cita:
Editado: Autopromo

Última edición por gnzsoloyo; 17/05/2016 a las 11:33
  #19 (permalink)  
Antiguo 17/05/2016, 11:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como poner una relacion de tablas en CASCADE

Wilson:
Si deseas agregar un APORTE, en los subforos de BbDD, deben ser una descripcion paso a paso, del mismo modo que lo detallarías en un MANUAL.

Videos (especialmente si son propios) o links a páginas de otros foros no se toman como APORTE, y serán eliminados sin previo aviso.

Si te fijas en los casos de Apaportes en otros subforos, verás que lo que publican no son los videos de Youtube, sino las explicacione sy los códigos.
__________________
¿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: cascade, relacion, tabla, tablas
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 07:10.