Foros del Web » Programando para Internet » PHP »

Como saber si una clave primaria esta contenida en otra tabla

Estas en el tema de Como saber si una clave primaria esta contenida en otra tabla en el foro de PHP en Foros del Web. Buenas tardes a todos. Una pregunta. Creo que el titulo de mi post está claro, pero les explico un poco mejor. Tengo una clave primaria ...
  #1 (permalink)  
Antiguo 10/01/2008, 15:58
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 15 años, 5 meses
Puntos: 1
Como saber si una clave primaria esta contenida en otra tabla

Buenas tardes a todos.

Una pregunta.

Creo que el titulo de mi post está claro, pero les explico un poco mejor.

Tengo una clave primaria para una Tabla X y esta misma clave sera clave foranea de otra tabla Y y asi sucesivamente.

Como puedo controlar ésto, para que el registro no lo pueda eliminar, ya que si lo elimina, podran causar problemas y dejar al resto de registros de otras tablas sin ese clave foranea.

Existe alguna manera de controlar esto o haciendo una consulta mysql via php.

Derrepente en el PHP arroja un codigo de error o algo por el estilo, y en base a este codigo de error tomar decisiones como enviar un mensaje que diga "El registro que esta intentando eliminar tiene dependencias con otros datos", y el registro no se lleque a eliminar.



Gracias y saludos.
  #2 (permalink)  
Antiguo 10/01/2008, 16:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Re: Como saber si una clave primaria esta contenida en otra tabla

Si tu tabla es INNODB, puedes comprobar ya que puedes usar ON DELETE RESTRICT y asi si controlas las claves foráneas directo en la tabla.

Si tu tabla es MyISAM tendrás tu que implementar el control desde PHP, y esto es haciendo un Query para ver si hay registros que tengan esa clave, y en el caso que los haya entonces no permites el borrado.

Saludos.
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 19:05.