Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

chave primária composta e coluna de incremento automático, mas NÃO chave primária


Uma solução para isso é usar o ID como sua chave primária e o var1, var2, var3, year campos como uma chave alternativa usando uma UNIQUE KEY restrição

Então, sua definição de tabela deve ficar assim:
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`) 
);

A UNIQUE KEY restrição impedirá inserções duplicadas de seus campos.