Mysql
 sql >> Datenbank >  >> RDS >> Mysql

zusammengesetzter Primärschlüssel und Autoincrement-Spalte, aber NICHT Primärschlüssel

Eine Lösung hierfür ist die Verwendung der ID als Primärschlüssel und var1, var2, var3, year Felder als alternativen Schlüssel durch Verwendung eines UNIQUE KEY Einschränkung

Ihre Tabellendefinition sollte also so aussehen:

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`) 
);

Der UNIQUE KEY Einschränkung verhindert das doppelte Einfügen Ihrer Felder.