2016-09-12 2 views
0
create trigger trig1 
    -> after insert on student 
    -> for each row 
    -> when (new.name="rgb") 
    -> begin 
    -> insert into class ("ug1",1) 
    -> end; 

es sagt mir, dass etwas in der Nähe von Aussage falsch ist. Kannst du mir helfen, es herauszufinden?Wie kann ich diese Triggerfunktion korrigieren?

desc class; 
+---------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+---------+-------------+------+-----+---------+-------+ 
| name | varchar(40) | YES |  | NULL |  | 
| section | int(11)  | YES |  | NULL |  | 
+---------+-------------+------+-----+---------+-------+ 
2 rows in set (0.06 sec) 

mysql> desc student; 
+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| roll | int(11)  | YES |  | NULL |  | 
| name | varchar(40) | YES |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 

Dies sind die Beschreibungen für beide Tabellen.

+0

Ich vermute, dass Ihre Datenbank MySQL ist. Wenn ja, hat die Datenbank ANSI-Anführungszeichen aktiviert? http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_ansi_quotes – jac

Antwort

1

Ihre Trigger-Anweisung sollte wie folgt sein. Siehe Trigger Syntax and Examples

create trigger trig1 
    -> after insert on student 
    -> for each row 
    -> begin      //begin should come first 
    -> if (new.name='rgb')   //use IF condition 
    -> insert into class values('ug1',1); //missing values keyword here 
    -> end if; 
    -> end; 
+0

das hat nicht funktioniert. –

+0

Hey Rahul Ich habe die richtige Lösung unten durch die Hilfe von Ihrer Lösung beantwortet. Danke. –

0

richtige Lösung ist:

DELIMITER @ 
-> create trigger trig1 
-> after insert on student 
-> for each row 
-> begin 
-> if (new.name = 'rgb') 
-> then 
-> insert into class values ('ug1',1); 
-> end if; 
-> end; 
@ 
0

Sie das Trennzeichen fehlen, während der Trigger über den

CLI Erstellen Hier wird die Syntax es zu schaffen -

delimiter // 
create trigger trig1 
after insert on student 
for each row 
begin 
    if new.name='rgb' then 
    insert into `class` ('ug1',1); 
    end if ; 
end// 

delimiter; 
Verwandte Themen