Phpmyadmin foreign key hinzufügen
Es importante entender las relaciones entre las diferentes tablas de la base de datos. Esas relaciones a menudo se materializan con restricciones de clave foránea. Este tutorial le mostrará cómo ver esas restricciones FK en las bases de datos MySQL y MariaDB con phpMyAdmin.
En la pantalla de vista de la relación verá todas las claves foráneas definidas para esta tabla (como tabla foránea). Las columnas en el rectángulo púrpura muestran las columnas de esta tabla para las que se definen las FK. Las columnas en el rectángulo azul muestran la tabla primaria, las columnas y la base de datos.
Phpmyadmin añadir columna
Tengo todas mis tablas establecidas, pero el problema principal es que sólo aparece la clave primaria cuando voy a la tabla > estructura > vista de relación para poder construir una clave foránea (y ya es la clave primaria de cierta tabla que quiero mantener – por ejemplo, la tabla paciente paciente está habilitada para ser modificada pero el Id médico -tengo una tabla médico también- no está habilitada).
Tengo otra tabla con dos claves compuestas (patientid y medicineid) que me permiten alterar ambas en la vista de relación. ¿Debo cambiar el índice ID del médico en la tabla de pacientes por otro? Dado que el ID del paciente es la clave primaria de la tabla de pacientes y el médico es la clave externa, ninguno de los dos puede ser la clave primaria.
No se puede añadir o actualizar una fila secundaria: falla una restricción de clave externa
En su phpmyadmin, vaya a la vista de estructura de su tabla de base de datos. En la parte superior hay dos pestañas: estructura de la tabla y vista de relación. Si seleccionas la vista de relación, verás que puedes añadir una clave foránea.
Esto es lo que yo haría (pero no soy ni de lejos un experto en la materia, así que quizá quieras que un experto lo verifique). Tengo una tabla ‘estado’ que tiene una clave foránea ‘client_id’ que hace referencia a mi tabla ‘clientes’. Hago que el ‘client_id’ sea un índice en primer lugar. Entonces esto es lo que pongo en mi vista de relación (Nota hay cuatro opciones de Acciones para elegir: cascada, establecer nulo, ninguna acción y restringir). Y luego ‘Columna’ client_id, Restricción de clave foránea (INNODB) ‘Base de datos’ business, ‘Tabla’ clients y ‘Columna’ id .
Vista de la relación de Phpmyadmin
Mirando el Debug SQL en el panel de la consola, se me ocurrió algo peculiar, la apertura de la “vista de relación” no desencadena ninguna consulta SELECT contra INFORMATION_SCHEMA.KEY_COLUMN_USAGE, la única tabla consultada en esa situación es la pma__userconfig. Así que si se te ocurre alguna razón por la que el INFORMATION_SCHEMA no es consultado, podría ser esa.
Además, dado que es un servidor MySQL puro, de origen, versión 8.0.18, hay algún tipo de configuración, que podría romper sus consultas SQL, pero estos se aplican por defecto para los clusters MySQL gestionados por DigitalOcean. Ver la captura de pantalla
Y esto podría estar relacionado también, abriendo la pestaña del Diseñador (/index.php?route=/database/designer&db=dbname), mostrará la estructura de todas las tablas, pero no las relaciones (activar y desactivar las líneas de relación)
He probado con versiones inferiores (4.5.0 hasta 5.2. 0), pero por alguna razón, los errores siguen siendo consistentes, incluso cuando se llama manualmente a \PhpMyAdmin\SqlParser\Context:: setMode(‘REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’); antes de la ejecución del Parser