Как правильно написать триггер

199
23 октября 2018, 13:10

Первый раз пишу триггер, скажите в чем может быть проблема.

Есть первая таблица (table), а в нем значение количество (qt). В зависимости от количество, во второй таблице должен создаваться поле (num). Значение поле выполняется как нумерация, поэтому он должен взять последний значению и автоматический записать дальше.
Нап: если последний значения (table2:num) было 2, а количество (table:num) 3, начиная с 3 он должен записаться (3,4,5) (table2:num).
Триггер создался, но проблема в том что не чего не происходить после insert : table
Скажите что я написала не так, и почему оно создалось, но не чего не делает?

Вот триггер которую писала:

DROP TRIGGER /*!50032 IF EXISTS */ `t_mat $$`
CREATE
TRIGGER `t_mat` AFTER INSERT ON `table` 
FOR EACH ROW BEGIN
DECLARE i INT;
DECLARE num2 INT;
SET i=1;
SET num2=(SELECT MAX(num) FROM table2);
WHILE i<= new.qt  DO
    SET num2=num2+1;
    INSERT INTO table2(num_mat, pole2,pole3) VALUES(num2,new.id_m,new.ps);
    SET i=i+1; 
END WHILE;
  END$$
DELIMITER ;
Answer 1

У меня получилось.

DELIMITER $$

CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER t_mol AFTER INSERT ON table FOR EACH ROW BEGIN DECLARE i INT; DECLARE num2 INT; SET i=1; SET num2=(SELECT MAX(num_mat) FROM table2); WHILE i<=new.qt DO SET num2=num2+1; INSERT INTO table2(num_mat,pole2,pole3) VALUES (num2,new.id_m,new.ps); SET i=i+1; END WHILE; END$$ DELIMITER ;


Спасибо всем вам за то, что не оставили без внимание!

READ ALSO
из json в базу данных

из json в базу данных

Ребят - дано куча json файлов - содержащих данныеНадо поместить данные в базу mysql

216
Как выбрать одну случайную запись из таблицы MySQL

Как выбрать одну случайную запись из таблицы MySQL

Есть таблица (в ней может быть 1 запись, а может 999999999999):

295
Выборка записей до ключевой при ее существовании или полная выборка без нее

Выборка записей до ключевой при ее существовании или полная выборка без нее

Как выбрать записи до ключевой при ее существовании а если ее нет сделать полную выборку

164
Можно ли в MySQL установить права на прцедуры

Можно ли в MySQL установить права на прцедуры

Можно ли в MySQL установить права для пользователя таким образом, что бы он не мог выполнять запросы на insert, update, delete, но мог вызывать хранимые...

163