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

挿入トリガー後のMySQLは自動インクリメント値を取得し、挿入後にフィールド値を更新すると不明な列エラーが発生します

    これはちょっとしたハックの仕事のようですが、MySQLに組み込まれているLAST_INSERT_ID()関数を使用して機能させることができました。

    CREATE TRIGGER `order_guide_insert_trigger`
    BEFORE INSERT ON `order_guide`
    FOR EACH ROW 
    BEGIN
        IF NEW.Sort_Placement IS NULL THEN
            SET NEW.Sort_Placement = LAST_INSERT_ID() + 1;
        END IF;
    END;
    

    これも機能し、機能しているようです

    CREATE TRIGGER `order_guide_insert_trigger`
    BEFORE INSERT ON `order_guide`
    FOR EACH ROW 
    BEGIN
        IF NEW.Sort_Placement IS NULL THEN
            SET NEW.Sort_Placement = (SELECT ID FROM order_Guide ORDER BY id DESC LIMIT 1) + 1;
        END IF;
    END;
    


    1. 他のテーブルの列を使用してテーブルから削除する

    2. AWSEC2からAWSRDSへのOracleデータベースの移行、パート4

    3. SQLクエリ:特定の時間間隔中にアクティブだったすべてのIDのリストで、開始時刻でソートされています

    4. 教義リスナーに要素を挿入する