sql >> データベース >  >> RDS >> Mysql

複合主キーと自動インクリメント列ですが、主キーではありません

    これに対する1つの解決策は、IDを使用することです。 主キーとして、var1, var2, var3, year UNIQUE KEYを使用した代替キーとしてのフィールド 制約

    したがって、テーブル定義は次のようになります。

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

    UNIQUE KEY 制約により、フィールドの重複挿入が防止されます。




    1. pls_integerとbinary_integerの違いは何ですか?

    2. hibernateでプロパティファイルを使用してデータベース構成パラメーターを読み取る方法

    3. 1つのテーブルから行を選択し、他のテーブルの最新の行を1対多の関係で結合します

    4. SQLite3をMySQLに移行する簡単な方法は?