sql >> Base de Datos >  >> RDS >> Mysql

clave principal compuesta y columna de incremento automático pero NO clave principal

Una solución a esto es usar el ID como su clave principal, y el var1, var2, var3, year campos como una clave alternativa usando una UNIQUE KEY restricción

Entonces, la definición de su tabla se verá así:

CREATE  TABLE `tbl_result` (
  `ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `var1` DECIMAL(6,2) UNSIGNED NOT NULL ,
  `var2` DECIMAL(3,2) UNSIGNED NOT NULL ,
  `var3` INT(11) UNSIGNED NOT NULL ,
  `year` INT(4) UNSIGNED NOT NULL ,
  `result` DECIMAL(8,4) NOT NULL ,
  PRIMARY KEY (`ID`),
  UNIQUE KEY (`var1`, `var2`, `var3`, `year`) 
);

La UNIQUE KEY la restricción evitará inserciones duplicadas de sus campos.