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

MySQLで自動インクリメントを使用した複合キーの定義

    InnoDBテーブルに対してMySQLにこれを自動的に実行させることはできません。トリガーまたはプロシージャを使用するか、MyISAMなどの別のDBエンジンを使用する必要があります。自動インクリメントは、単一の主キーに対してのみ実行できます。

    次のようなものが機能するはずです

    DELIMITER $$
    
    CREATE TRIGGER xxx BEFORE INSERT ON issue_log
    FOR EACH ROW BEGIN
        SET NEW.sr_no = (
           SELECT IFNULL(MAX(sr_no), 0) + 1
           FROM issue_log
           WHERE app_id  = NEW.app_id
             AND test_id = NEW.test_id
        );
    END $$
    
    DELIMITER ;
    


    1. PHPを使用してMySQLデータベースをエクスポートする

    2. スキーマ内のすべての無効なパッケージをコンパイルする方法は?

    3. mysqlの最大クエリサイズはいくつですか?

    4. Ajaxを使用してデータベースからレコードを削除する方法