2013-10-06 4 views
1

Как создать триггер, который будет вставлять данные в другую таблицу.MySQL - Триггер, который будет автоматически вставлен в другую таблицу

Например: У меня есть department стол и course стол и course таблица имеет внешний ключ с именем department_id.
Вставьте CICCT в таблицу course, но в таблице department нет CICCT.
Моя цель - сделать триггер, добавив значение в таблицу department. Как я могу это сделать? Я пробовал это, это правильно?

CREATE TRIGGER department_insert BEFORE INSERT 
ON course 
FOR EACH row 
begin 
    INSERT INTO department 
       (department_id, 
       description) 
    VALUES  (new.id_dep, 
       NULL); 
end; 

Другой вопрос в той же теме, что мне нужно сделать, чтобы уменьшить емкость номера один, когда студент зачисляется?

+0

привет кто-нибудь мне помочь? – JeraldPunx

ответ

0

Ваш триггер может выглядеть следующим образом

CREATE TRIGGER department_insert 
BEFORE INSERT ON course 
FOR EACH ROW 
    INSERT IGNORE INTO department (department_id, description) 
    VALUES (NEW.id_dep, NULL); 

Примечание:

  • доступ к значениям столбцов из строки вставляется вы должны использовать NEW ключевое слово

    NEW.id_dep 
    ^^^ 
    
  • использование IGNORE в INSERT, чтобы игнорировать значения department_id, если они уже существуют в таблице department. Это позволяет значительно упростить ваш код.

Вот SQLFiddle демо

Сделать отдельный пост для вашего второго вопроса и указать таблицы схемы

+0

omg ty so much ... finally – JeraldPunx

+0

Кстати, вы знаете мой другой вопрос на нижнем ... где он уменьшает на единицу каждую вставку ... и уменьшает одно на новом и добавляет один на старый ... как меняющийся предмет. .. – JeraldPunx

+0

@JeraldPunx Вы очень желанны. Я рад, что смогу помочь :) Теперь, чтобы помочь вам со вторым вопросом, например, я сказал, отправьте еще один вопрос о StackOverflow, и я или другие члены SO будут рады вам помочь. И убедитесь, что вы публикуете схемы таблиц (структуру) для этого вопроса. Если вы хотите, вы можете оставить мне комментарий со ссылкой на ваш новый вопрос при его создании. – peterm

Смежные вопросы