2013-12-16 94 views
0

當我在不同的數據庫中運行相同的查詢時,它可以成功運行。但在MySQL舍姆提示錯誤:我可以在phpmyadming的mysql架構中創建觸發器

#trigger can not be created on system table

我的查詢是:

delimiter // 
CREATE TRIGGER `invite` AFTER INSERT ON `Invite_page` 
FOR EACH ROW BEGIN 
    Insert into userpost(userid,url,title,preview,sentiment,time) values(NEW.userid,NEW.url,NEW.title,NEW.preview,NEW.sentiment,NEW.time); 
    Insert into urlcontent(userid,url,title,preview,sentiment,time) values(NEW.userid,NEW.url,NEW.title,NEW.preview,NEW.sentiment,NEW.time); 
END 
// 
delimiter ; 

如果我不能,那我怎麼才能解決這個問題呢?

UPDATE:

實際的錯誤:

#1465 - Triggers can not be created on system tables

回答

2

試試這個

DELIMITER $$ 
CREATE TRIGGER `invite` AFTER INSERT ON `Invite_page` 
FOR EACH ROW 
BEGIN 
    Insert into userpost(userid,url,title,preview,sentiment,time) values(NEW.userid,NEW.url,NEW.title,NEW.preview,NEW.sentiment,NEW.time); 
    Insert into urlcontent(userid,url,title,preview,sentiment,time) values(NEW.userid,NEW.url,NEW.title,NEW.preview,NEW.sentiment,NEW.time); 
END$$ 
DELIMITER ; 
+0

謝謝,但仍然是相同的錯誤 –

+0

所以'Invite_page'是一個系統表?你確定?? – zzlalani

+0

@zzalani:我手動創建了該表。這不是系統表 –

1

在 「限制觸發器的」 在http://dev.mysql.com/doc/refman/5.5/en/stored-program-restrictions.html部分,你可以讀到:

Triggers are not permitted on tables in the mysql database.

順便說一句,你使用mysql架構來存儲數據?這(通常)是一個非常糟糕的主意,可能您需要重新考慮您的設置。

+0

我所有的表都在'mysql'模式中。所以我需要在其中創建觸發器。這不可能嗎? –

+0

不,這是不可能的。您需要創建一個新的模式,並將您的信息放在那裏,並保留'mysql'模式。 –

+0

你爲什麼要在mysql_schema中有表? – zzlalani