Heim  >  Fragen und Antworten  >  Hauptteil

Informationen zum Entwerfen einer Funktion, die ein Feld in MySQL erhöht.

Ich habe eine einfache Tabelle mit drei Feldern, tag_id, user_id, user_tag_id. Wenn ich einen Datensatz einfüge (durch Einfügen einer bekannten tag_id und user_id), sollte user_tag_id automatisch gesetzt werden, unter der Bedingung, dass user_id = die aktuell eingefügte user_id ist , wie implementiert man das? Muss ich eine benutzerdefinierte Funktion von MySQL schreiben?

世界只因有你世界只因有你2670 Tage vor949

Antworte allen(2)Ich werde antworten

  • 某草草

    某草草2017-06-28 09:25:38

    DELIMITER $$
    DROP TRIGGER IF EXISTS after_insert_table $$
    CREATE TRIGGER after_insert_table
    AFTER INSERT on table
    FOR EACH ROW
    BEGIN
      update table t set t.user_tag_id = t.user_tag_id+1 where t.user_id=new.user_id ;
    END $$
    DELIMITER ;

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-28 09:25:38

    如果只是新插入的记录中user_tag_id加1,可以分成两个sql语句:

    首先计算user_id对应user_tag_id的最大值

    select max(user_tag_id) + 1 from t1 where user_id = :user_id

    然后把上个语句的返回值,放到insert语句中就可以了。

    Antwort
    0
  • StornierenAntwort