Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Campo sin repetir

Estas en el tema de Campo sin repetir en el foro de Bases de Datos General en Foros del Web. Hola, tengo una tabla con una primary-key, pero además quiero que otro de los campos, que es una cadena de caracteres no se pueda repetir ...
  #1 (permalink)  
Antiguo 23/06/2008, 06:45
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Campo sin repetir

Hola, tengo una tabla con una primary-key, pero además quiero que otro de los campos, que es una cadena de caracteres no se pueda repetir en la tabla, no encuentro la sentencia SQL para poder hacer esto, me podrías ayudar? Estoy trabajando con una base de datos SQL, pero supongo que esto es genérico.
Gracias.
  #2 (permalink)  
Antiguo 23/06/2008, 07:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Campo sin repetir

Debes definir un indice unico sobre ese campo...

Por ejemplo la típica tabla de usuarios donde ademas del idUsuario el username tiene o quieres que sea unico...

Código:
DROP TABLE IF EXISTS `forum`.`users`;
CREATE TABLE  `forum`.`users` (
  `iduser` int(11) NOT NULL auto_increment,
  `password` varchar(6) NOT NULL,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY  (`iduser`),
  UNIQUE KEY `ind_users_username` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 
(la parte naranja elimina la tabla si ya existe, cuidado. Y la parte en verde dependerà del motor que uses...)

si ya tienes creada la tabla y no hay repeticiones....

Código:
ALTER TABLE `forum`.`users` ADD UNIQUE INDEX `ind_users_username`(`name`);
Quim
  #3 (permalink)  
Antiguo 25/06/2008, 07:40
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Campo sin repetir

Muchas gracias. Has sido de gran ayuda.
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 14:54.