看看這段代碼:這個觸發語法有什麼問題?
DELIMITER $$ DROP TRIGGER IF EXISTS `after_product_insert` $$ CREATE TRIGGER `after_product_insert` AFTER INSERT ON `products` FOR EACH ROW UPDATE `categories` SET product_count=product_count+1 where id = NEW.category_id; END$$
這運行正常,但顯示了一些錯誤。這裏是輸出:
Query OK, 0 rows affected (0.16 sec) ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 1
因此,即使觸發器已創建 - 腳本(包含此觸發器)因錯誤而死亡。這可能很簡單,但不知何故,我錯過了這一點。幫助任何人?
你可以嘗試改變:'where id ='into'where categories.id ='?我想這兩個表中都有一個「id」字段。 – 2011-05-01 17:54:43
你也有一個沒有'BEGIN'的'END'。你可以刪除'END'或添加一個'BEGIN'。 – 2011-05-01 17:57:52
'id'不會產生問題,因爲id在'更新類別'語句中使用。儘管如此,感謝END-BEGIN。我犯了一個可怕的錯誤。浪費時間。 – Vikash 2011-05-01 20:40:41