Mysql 在插入触发器后创建视图
我有两个表companys(id,company\u name)和users(id,company\u id,user\u name) 现在,我想在将数据插入公司表时创建一个视图 我使用了以下两种方法,但在这两种情况下得到相同的错误。错误是:Mysql 在插入触发器后创建视图,mysql,stored-procedures,triggers,views,Mysql,Stored Procedures,Triggers,Views,我有两个表companys(id,company\u name)和users(id,company\u id,user\u name) 现在,我想在将数据插入公司表时创建一个视图 我使用了以下两种方法,但在这两种情况下得到相同的错误。错误是: #1422 - Explicit or implicit commit is not allowed in stored function or trigger. 第一个问题是: DELIMITER $$ CREATE TRIGGER testInse
#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;
请帮帮我,伙计们
谢谢大家
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 ;