2014-07-25 77 views
0

我是MySQL的新手。我有兩個表格帖子和通知。我試圖爲帖子中添加的每個新行創建一個觸發器,我會將該新行添加到notification_id。 其對MySQL,但在phpMyAdmin觸發正常工作不會執行,它給出了一個錯誤在phpmyadmin中插入觸發器

1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用手動

「」附近在第11

這裏我的表什麼樣子:

職位表

create table posts 
(
id int, 
topic_id tinyint, 
post_creator int, 
post_date datetime, 
post_content text 
); 

通知表

create table notification 
(
    not_id int , 
    top_id tinyint, 
    p_creator int, 
    p_date datetime, 
    p_content text 
); 

notification_id觸發

delimiter $$; 
    create trigger notification_id before Insert on posts 
    for each row 
    begin 
     declare id int; 
     declare topic_id int; 
     declare post_creator int; 
     declare post_date datetime; 
     declare post_content text; 

     insert into notification(not_id,top_id,p_creator,p_date,p_content) values(new.id,new.topic_id,new.post_creator,new.post_date,new.post_content); 
    end$$; 
+0

所以要清楚,你已經讀了y得到了創建的觸發器,並且當您從MySQL執行INSERT時,它可以正常工作,但是從phpMyAdmin執行相同的INSERT失敗並顯示錯誤消息?你是通過「插入」標籤插入還是直接輸入SQL? –

回答

0
  1. 創建表第一常
  2. 變化在phpMyAdmin界面默認的分隔符[它只是在那裏輸入您的查詢文本]分別
  3. 運行創建觸發器的腳本,沒有改變分隔線 因此,你的觸發器代碼不應該有delimiter $$;