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

это говорит мне, что что-то не так близко к заявлению. Можете ли вы помочь мне в выяснении этого?Как исправить эту функцию триггера?

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 |  | 
+-------+-------------+------+-----+---------+-------+ 

это описание для обеих таблиц.

+0

Я предполагаю, что ваша база данных - это MySQL. Если да, включена ли в базе данных кавычки ANSI? http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_ansi_quotes – jac

ответ

1

Ваш оператор триггера должен быть как показано ниже. См 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

, что не работает. –

+0

Привет, Рахул Я ответил на правильное решение ниже, взяв справку из вашего решения. Большое вам спасибо. –

0

Право решение:

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

Вы пропускаете разделителем при создании триггера через CLI

Вот синтаксис для его создания -

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; 
Смежные вопросы