2012-02-29 147 views
15

me siento como que estoy siendo estúpido, pero no pueden encontrar en cualquier parte de la interfaz de phpMyAdmin para agregar restricciones de claves externas, por ejemplo, CASCADE ON DELETEañadir restricciones en phpMyAdmin

He buscado preguntas similares en el aquí y en el wiki de phpMyAdmin, pero no puedo encontrar nada al respecto.

que se dan cuenta de que podía hacer esto a través de la interfaz de consulta, pero me gustaría saber cómo hacerlo a través de la interfaz gráfica.

+0

posible duplicado de [Configuración de claves foráneas en phpMyAdmin?] (Http://stackoverflow.com/questions/459312/setting-up-foreign-keys-in-phpmyadmin) –

+1

Lo encontré y no lo había encontrado ayudé. Problema resuelto ahora sin embargo. – Alex

+0

Ah, sí, ambas tablas (la que tiene el FK y la que se hace referencia debe ser InnoDB, o en otro motor transaccional). –

Respuesta

30

Primero, debe tener su motor de almacenamiento como InnoDB. Luego seleccione una tabla y vaya a la pestaña 'Estructura'.

Debajo de la mesa verá 'Vista de relaciones', haga clic en él. Desde allí podrías agregar restricciones.

+0

Ah, gracias, el motor de almacenamiento se configuró mal, por eso no pude agregar las restricciones. – Alex

+0

Eres welocme, Alex. Me alegro de poder ayudar. – utsikko

+0

Veo '+ Índices' y no 'Vista de relación'. Por favor, ayuda a configurar las restricciones de clave externa. –

7

CASCADE

Siempre que las filas de la tabla maestra (referencia) se eliminan (resp. Actualiza), las filas respectivas del niño (referencia) tabla con una columna de clave externa a juego conseguirán borrado (resp. actualizado) también. Esto se llama eliminación en cascada (actualización respectiva [2]).

RESTRICT

Un valor no puede ser actualizado o eliminado cuando existe una fila en una tabla de clave externa que hace referencia el valor en la tabla referenciada. Del mismo modo, una fila no se puede eliminar siempre que haya una referencia desde una tabla de clave externa.

NO ACTION

NO ACTION y RESTRICT son muy parecidos. La principal diferencia entre NO ACTION y RESTRICT es que, SIN NINGUNA ACCIÓN, la verificación de integridad referencial se realiza después de tratar de alterar la tabla. RESTRICT realiza la comprobación antes de intentar ejecutar la instrucción UPDATE o DELETE. Ambas acciones referenciales actúan de la misma manera si la verificación de integridad referencial falla: la instrucción UPDATE o DELETE dará como resultado un error.

SET NULL

Los valores de clave externa en la fila de referencia se establecen en NULL cuando la fila de referencia se actualiza o se elimina. Esto solo es posible si las columnas respectivas en la tabla de referencia son nulables. Debido a la semántica de NULL, una fila de referencia con valores NULL en las columnas de clave externa no requiere una fila referenciada.