2017-01-29 4 views
0

Ich habe zwei Tabellen,Nach Einfügen MySQL Prüfwerte zu aktualisieren oder eine neue Zeile in einer anderen Tabelle einfügen

RawFeed , SellerList. 

Wenn eine neue Zeile in RawFeed eingesetzt ist, ich brauche eine Zeile in SellerList einzufügen, wenn ein entsprechender SellerID existiert nicht in SellerList,

Ansonsten brauche ich für diese SellerID zwei Spaltenwerte in der SellerList Tabelle zu erhöhen.

Hier ist meine Trigger-Code-

CREATE TRIGGER `SellerListUpdate` AFTER INSERT ON `RawFeed` 
FOR EACH ROW 
    BEGIN 
     --CHECK SELLER ID EXISTS OR NOT. 
     DECLARE SELLEREXISTS INT; 
     SELECT COUNT(*) INTO SELLEREXISTS FROM SellerList WHERE SellerList.SellerID=NEW.seller_id; 

     IF SELLEREXISTS=0 THEN 
      --INSERT ROW 
      INSERT INTO SellerList(`SellerID`, `Total`, `Active`) VALUES(NEW.seller_id, 1, 1); 
     ELSE 
      --UPDATE ROW 
      UPDATE SellerList SET Total=Total+1, Active=Active+1 WHERE SellerList.SellerID=NEW.seller_id; 
     END IF; 
    END 

Und Ich erhalte diese fehler-

SQL Error(1064): You have an error in your SQL Syntax; 

Antwort

1

Versuchen Sie das Trennzeichen

DELIMITER $$ 
CREATE TRIGGER `SellerListUpdate` AFTER INSERT ON `RawFeed` 
FOR EACH ROW 
    BEGIN 
     --CHECK SELLER ID EXISTS OR NOT. 
     DECLARE SELLEREXISTS INT; 
     SELECT COUNT(*) INTO SELLEREXISTS FROM SellerList WHERE SellerList.SellerID=NEW.seller_id; 

     IF SELLEREXISTS=0 THEN 
      --INSERT ROW 
      INSERT INTO SellerList(`SellerID`, `Total`, `Active`) VALUES(NEW.seller_id, 1, 1); 
     ELSE 
      --UPDATE ROW 
      UPDATE SellerList SET Total=Total+1, Active=Active+1 WHERE SellerList.SellerID=NEW.seller_id; 
     END IF; 
    END 
$$ 
DELIMITER ; 
Wechsel
Verwandte Themen