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

ビット単位のカウントを使用してテーブルIDフィールドをインクリメントします

    上記のすべての問題を回避するために、私は次のようにうまく機能するように構築することができました!

    DELIMITER $$
    CREATE TRIGGER testbitcompatid BEFORE INSERT ON Table
        FOR EACH ROW 
        BEGIN
            SET @LAST_ROW = (SELECT MAX(id) FROM Table);
            SET NEW.id = CASE WHEN @LAST_ROW IS NULL THEN 1 ELSE @LAST_ROW * 2 END;
    
        END;
    $$
    DELIMITER ;
    

    ほとんどの場合、最も高いidを使用します 、log(2)を取得します 対応するAUTO_INCREMENTを提供します。 id 。次に、1を追加します 、そしてそれを2までパワーアップします 。

    これが、他の人の頭痛の種を防ぐのに役立つことを願っています。




    1. フォームとレポートのコントロールを使用する場合の10の便利なMicrosoftAccessショートカット

    2. MySQLでのSUBSTR()関数のしくみ

    3. Rails:データベースで空の文字列を強制的にNULLにする

    4. 5.1.32でTRIGGER特権を持つMySQLトリガーを作成できません