Heim  >  Fragen und Antworten  >  Hauptteil

Wie schreibe ich einen MySql-Einfügetrigger basierend auf dem eingefügten Datenwert?

Ich möchte einen Trigger für Tabellenbenutzer schreiben. Wenn ein neuer Benutzer hinzugefügt wird und sein Titel IT-bezogen ist, wird ein Datensatz in der Tabelle „IT-Kontaktliste“ erstellt.

Also habe ich den folgenden Trigger geschrieben.

CREATE TRIGGER `test1` INSERT ON `Users` FOR EACH ROW BEGIN
IF INSTR(Title,'IT') > 0
THEN
INSERT INTO IT_contact_list (name,title) value (username,Title);
END IF;
END;

Es gibt den Fehler „Unbekannter Feldspaltenkopf in der Liste“, aber er ist in den Tabellen „Benutzer“ und „IT_contact_list“ vorhanden. Also, was ist das Problem? Danke.

P粉277305212P粉277305212220 Tage vor351

Antworte allen(1)Ich werde antworten

  • P粉448130258

    P粉4481302582024-04-04 10:30:24

    已在工作台中修复并测试。试试这个:

    delimiter //
    drop trigger if exists test1 //
    CREATE TRIGGER `test1` AFTER INSERT ON `Users` FOR EACH ROW BEGIN
    IF INSTR(new.Title,'IT') > 0
    THEN
    INSERT INTO IT_contact_list (name,title) value (new.username,new.Title);
    END IF;
    END//
    
    insert into Users values('john','HardwareIT');
    insert into Users values('bill','Hardware engineer');
    select * From IT_contact_list;
    
    --result set:
     john    HardwareIT

    Antwort
    0
  • StornierenAntwort