Mysql
 sql >> Base de données >  >> RDS >> Mysql

clé primaire composite et colonne d'auto-incrémentation mais PAS de clé primaire

Une solution à cela consiste à utiliser l'ID comme clé primaire, et le var1, var2, var3, year champs comme clé alternative en utilisant une UNIQUE KEY contrainte

Ainsi, votre définition de table ressemblera à ceci :

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 empêchera les insertions en double de vos champs.