2015-08-05 3 views
1

У меня есть две таблицы компаний (id, company_name) и пользователей (id, company_id, user_name);Создать представление после запуска триггера

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

Я использовал следующие два пути, но получал одинаковые ошибки в обоих случаях. Ошибка:

#1422 - Explicit or implicit commit is not allowed in stored function or trigger. 

Первый запрос является:

DELIMITER $$ 
CREATE TRIGGER testInsert 
    AFTER INSERT ON companies 
    FOR EACH ROW BEGIN 

    CREATE VIEW test(user_name) AS 
    SELECT user_name 
    FROM users; 
END$$ 
DELIMITER ; 

Затем я попытался создать процедуру первого и называют эту процедуру в триггере, как этот

create procedure createView() 
create view vt as select * from users; 


CREATE TRIGGER `testInsert3` AFTER INSERT ON `companies` 
FOR EACH ROW 
BEGIN 
    CALL createView(); 
END; 

Пожалуйста, помогите мне, ребята.

Спасибо всем.

ответ

0
please refer this link, i think this will help you 

    http://stackoverflow.com/questions/16256250/create-view-in-a-trigger 


try creating the view like this 


DELIMITER $$ 
CREATE TRIGGER testInsert 
    AFTER INSERT ON companies 
    FOR EACH ROW BEGIN 

    EXECUTE('CREATE VIEW test(user_name) AS SELECT user_name 
    FROM users') 
END$$ 
DELIMITER ; 
Смежные вопросы