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

[SOLUCIONADO] clave única de múltiples campos

Estas en el tema de clave única de múltiples campos en el foro de Mysql en Foros del Web. Buenas tengo una tabla con varios campos y quiero que dos de ellos sean únicos, pero no cada uno por separado, sino los dos a ...
  #1 (permalink)  
Antiguo 22/07/2014, 07:41
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 11 años, 5 meses
Puntos: 1
clave única de múltiples campos

Buenas

tengo una tabla con varios campos y quiero que dos de ellos sean únicos, pero no cada uno por separado, sino los dos a la vez.

por ejemplo:
Código MySQL:
Ver original
  1. CREATE TABLE miTabla(
  2.     a varchar(25) NOT NULL UNIQUE,
  3.     b varchar(2) NOT NULL UNIQUE)
  4.     ENGINE=InnoDB;

haciendo esto, yo puedo meter una fila que sea
Código MySQL:
Ver original
  1. INSERT INTO miTabla (a, b) VALUES ('AAAAA', 'BB');

y al meter
Código MySQL:
Ver original
  1. INSERT INTO miTabla (a, b) VALUES ('AAAAA', 'CC');
no puedo porque el primer campo ya existe. Lo que me gustaría es poder hacer que esto sí pudiese insertarse porque la clave únicoa estuviese compuesta por la columna a y b.

No sé si me he explicado...

Última edición por gnzsoloyo; 22/07/2014 a las 08:14
  #2 (permalink)  
Antiguo 22/07/2014, 08:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: clave única de múltiples campos

En esta tabla no tienes una clave UNIQUE de múltiples campos. Tienes dos claves UNIQUE de un campo cada una.
Para crear un índice de multiples campos, la clave de índice debe contener más de un campo:
Código MySQL:
Ver original
  1. CREATE TABLE miTabla(
  2. UNIQUE `a_b_uidx` (`a`,`b`))
O bien:
Código MySQL:
Ver original
  1. CREATE TABLE miTabla(
  2.  
  3. CREATE UNIQUE INDEX a_b_uidx ON miTabla(a, b);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/07/2014, 09:22
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: clave única de múltiples campos

gracias gnzsoloyo

me estás haciendo experto en mysql

Etiquetas: campo, campos, clave, key, tabla
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 13:37.