Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/01/2011, 05:42
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: duda con autoincrement i llave primaria

No hay dos llaves primarias hay una llave primaria compuesta.

La llave primaria es unica por definición y sus valores tambien, no hace afalta agregar le un indice unico.

Si tus edificios solo pueden entar una vez lo que debes hacer es definir el codigo_edificio como clave primaria y no entrar edificios repetidos, o definir el codigo edificio como auto increment y no dar el valor en el momento de hacer un insert, ya pondra el el nuevo codigo...


Código MySQL:
Ver original
  1. CREATE TABLE edificio
  2. (
  3.   codigo_edificio INT UNSIGNED NOT NULL AUTO_INCREMENT,
  4.   descripcion_edificio VARCHAR(500) NOT NULL,
  5.   CONSTRAINT pk_edificio PRIMARY KEY (codigo_edificio)
  6. ) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = INNODB;

Código MySQL:
Ver original
  1. INSERT INTO  edificio(descripcio_edificio) VALUES ('casa nueva');

Si el codigo de edifico tiene alguna estructura especifica mas compleja puedes mantener el id_edficio como auto inc y PK y luego definir un indice unico sobre codigo_edificio

Código MySQL:
Ver original
  1. CREATE TABLE edificio
  2. (
  3.   codigo_edificio INT UNSIGNED NOT NULL,
  4.   descripcion_edificio VARCHAR(500) NOT NULL,
  5.   CONSTRAINT pk_edificio PRIMARY KEY (id_edificio)
  6.   CONSTRAINT UNIQUE INDEX index_codigo BTREE (codigo_edificio)
  7. ) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = INNODB;

En este ultimo caso el codigo_edificio incluso podria ser alfanumerico
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.