2010-03-19 41 views
11

Estoy usando phpmyadmin (php & mysql) y estoy teniendo problemas para vincular las tablas con claves externas.phpMyAdmin valores del campo desplegable de clave foránea

Obtengo valores negativos para el campo countyId (que es la clave externa). Sin embargo, está vinculando a mi otra mesa bien y está en cascada muy bien.

Cuando voy a añadir datos habrá un buzón para la CountyId y los valores de ser algo como esto,

-1 

1- 

Aquí es mi declaración alter:

ALTER TABLE Baronies 
ADD FOREIGN KEY (CountyId) 
REFERENCES Counties (CountyId) 
ON DELETE CASCADE 
+1

De alguna manera no sé si esto es la programación relacionada o no. Su declaración de SQL se ve bien. No tengo conocimiento de phpmyadmin y, con respecto a esto, tu pregunta es más parecida a "cómo usar la aplicación phpmyadmin". –

+0

Goto SuperUser? – p4bl0

+4

Esto no tiene nada que ver con la consulta o la clave en sí. Su cuadro desplegable para seleccionar los valores no tiene una entrada negativa, en este caso, sin importar cuál elija, ingresará el valor '1'. Por qué pMA lo representa de esta manera; No sé ... –

Respuesta

-1

Compruebe si su las tablas usan el motor MyIsam. En ese caso, las claves externas no son compatibles. Use InnoDB en su lugar.

+0

Sí, ambas tablas están usando el motor InnoDB. –

+0

phpmyadmin usa MyIsame de forma predeterminada ¿hay alguna forma de cambiar esto? Intenté buscar pero no encontré nada. Porque acabo de cambiar las tablas a InnoDB ... ¿podría ser este el problema? –

+0

El valor predeterminado en mySql es myISAM, esta no es una opción de phpmyadmin. Consulte la documentación de MySql sobre los motores de DB en: http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html – munissor

6

Puede cambiar el aspecto de este menú desplegable con la opción ForeignKeyDropdownOrder. (Ver el PMA documentation).

Ejemplo:

$cfg['ForeignKeyDropdownOrder'] = array('content-id'); 
/* 'content' is the referenced data, 'id' is the key value. */ 
3

Como dijo Lex, esto es sólo la forma phpMyAdmin muestra los valores. Si ve "-1" o "1-" en ese cuadro desplegable, es sólo 1.

9

como he explicado en ServerFault:

No es el número negaitve, la característica de phpMyAdmin es mostrar clave externa valor y un campo de descripción personalizado al lado. En la tabla referenciada (Condados) puede ir a "Vista de relación" y debajo de la tabla hay un cuadro de selección "Elegir campo para mostrar", en el que elige el valor que se mostrará junto al valor CountyID en la tabla de referencia (Baronies) Véase también: phpymadminWiki

-1

ir a la operación de cambio myiasm a InnoDB de ir

+0

No puedo tener mucho sentido de esto, pero parece que no tiene mucho que ver con las claves externas. Tal vez un poco más de detalle sería útil. –

Cuestiones relacionadas