Foros del Web » Programando para Internet » PHP »

Campo Unique

Estas en el tema de Campo Unique en el foro de PHP en Foros del Web. Hola, antes que nada, gracias desde ya!!! Creando una tabla en la que necesito que un campo sea unico, es decir que sus datos no ...
  #1 (permalink)  
Antiguo 20/01/2004, 22:54
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Campo Unique

Hola, antes que nada, gracias desde ya!!!

Creando una tabla en la que necesito que un campo sea unico, es decir que sus datos no sean igual en otros registros, llevo poco con php y mysql y normalmente a los campos que quería que fuesen unicos los definia con PRIMERY KEY y funcionaban bien, el problema es que ahora necesito que otro campo tambien sea unico y lo definido con UNIQUE('nombre del campo'), se crea correctamente pero no se porque deja ingresar datos identicos en diferentes registros, alguien me puede explicar que hago mal??? o si es que estoy equivocado y UNIQUE no sirve para que el contenido de un campo en la tabla sea unico.., weno a continuación pego el code para que lo veáis más claro.

Código PHP:
CREATE TABLE `usuarios` (
  `
IDint(5unsigned NOT NULL auto_increment,
  `
usuariovarchar(255NOT NULL default '',
  `
passwordvarchar(255NOT NULL default '',
  `
correovarchar(255NOT NULL default '',
  `
nombrevarchar(255) default NULL,
  
UNIQUE (`nombre`),
  
PRIMARY KEY  (`ID`)
TYPE=MyISAM
Un saludo
  #2 (permalink)  
Antiguo 20/01/2004, 23:11
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Estoy tonto xdd, si que funcionaba lo que pasa que me había equivocado en el campo en vez de usuario habia puesto UNIQUE (`nombre`) como se puede observar en mi anterior post, ahora tengo otra duda he visto en algunos manuales por ejemplo en http://www.rinconastur.com/php/php68.php , que exactamente esto ->> UNIQUE (nombre campo) define un índice único para el campo especificado. Evidentemente, si es único solo puede definirse para un campo y obviamente también el campo debe estar definido.
Pará definir un campo como único no puede tener asignado NOT NULL.
Un campo al que se ha asignado un índice UNIQUE NO ADMITE VALORES IDENTÍCOS en dos registros distintos de la tabla.


la cuestión es que he creado en campo con NOT NULL y despues lo he definido como UNIQUE y no me ha dado error y parece que funciona..., a que se debe esto???

El code que he utilizado es este:

Código PHP:
CREATE TABLE `usuarios` (
  `
IDint(5unsigned NOT NULL auto_increment,
  `
usuariovarchar(255NOT NULL default '',
  `
passwordvarchar(255NOT NULL default '',
  `
correovarchar(255NOT NULL default '',
  `
nombrevarchar(255) default NULL,
  
UNIQUE (`usuario`),
  
PRIMARY KEY  (`ID`)
TYPE=MyISAM
Un saludo.
  #3 (permalink)  
Antiguo 21/01/2004, 08:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

A que rinconatur no es el creador y mantenedor de MySQL. Por muy util que sea su manual, si quieres saber la verdad absoluta de MySQL debes acudir a su creador, en www.mysql.com tienes el manual (mira en CREATE TABLE). Alli no dicen nada sobre si una clave UNIQUE deba ser o no NOT NULL. Es mas, dice que si el campo admite NULL, puede tener varios registros con ese valor a NULL.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 21/01/2004, 13:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Gracias Josemi, seguire tu consejo.

Un saludo
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 22:43.