Mysql
 sql >> Database >  >> RDS >> Mysql

chiave primaria composita e colonna di incremento automatico ma NON chiave primaria

Una soluzione a questo è usare l'ID come chiave primaria e var1, var2, var3, year campi come chiave alternativa utilizzando una UNIQUE KEY vincolo

Quindi, la definizione della tua tabella sarà simile a questa:

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 vincolo impedirà inserimenti duplicati dei tuoi campi.