23
A
回答
50
它將語句分隔符從;
更改爲//
。這樣你就可以在你的觸發器定義中寫入;
而不會導致MySQL客戶端誤解了你的意思。
請注意,改變回來時,它是DELIMITER ;
,而不是DELIMITER;
,正如我見過人們試圖做的那樣。
13
在SQL中,用分隔符(默認分號(;))關閉每條語句。在觸發器中,您需要編寫多個語句,每個語句以分號結尾。爲了告訴MySQL這些分號不是觸發器語句的結尾,你暫時將分隔符從;到//,所以MySQL會知道觸發器語句只有在econunter //時纔會結束。
1
閱讀(ummmm)mysql documentation。
delimiter
是您發送給mysql命令行客戶端的每個命令結束的標記。
delimiter
不僅與觸發器有關,而且定義觸發器和存儲過程是一個強大的用例,因爲您希望它們包含分號(;),否則這些分號是默認的delimiter
。
1
簡單設置語句分隔符的結尾(;
標準默認SQL中的分號)。 如果您想在SQL中使用;
,或者您正在使用嵌入式SQL(可能導致混淆),更改字符可能會很有用。同樣,在你的例子中//
可能會導致嵌入式SQL產生混淆,或者你可能想在你的SQL中使用它。所以暗示使用DELIMITER
來設置適合您的應用程序和需要的分隔符。
0
添加例子:
當使用mysql shell命令時,我們使用;
分隔符關閉每個語句。但是,如果我們想要構建存儲過程和觸發器,則還需要在這些語句中添加分號;
。
> delimiter //
> create trigger log_students after insert on students
> for each row
> begin
> insert into log_students(change_by, change_at) values(USER(), NOW());
> end//
> delimiter ;
相關問題
- 1. 如何在Javascript中觸發DOMContentLoaded時執行什麼操作?
- 2. 觸發器在操作中未觸發
- 3. 更新觸發器上的MySql。 DELIMITER
- 4. 爲什麼這個觸發器沒有執行?
- 5. 在Java中執行新操作後,代碼塊會執行什麼操作?
- 6. CookiePolicy適配器參數在Worklight 6.1+中執行什麼操作?
- 7. 如何使用cassandra觸發器執行刪除操作?
- 8. 通過編程寫入觸發器或執行操作?
- 9. 什麼觸發JavaScript代碼執行?
- 10. 在什麼情況下執行SQL Server觸發器?
- 11. INSTEAD OF INSERT觸發器執行插入操作後,FOR INSERT觸發器會觸發嗎?
- 12. 在執行命令後,double-dash會執行什麼操作?
- 13. 在觸發器中執行程序
- 14. 如何在觸發器中觸發2個寫操作
- 15. 在Postgres觸發函數異常調用之前執行操作
- 16. 觸發操作
- 17. 觸發器執行順序
- 18. 爲什麼會發生「java.lang.IllegalStateException:onSaveInstanceState後無法執行此操作」?
- 19. 爲什麼這個MySQL觸發器不能正確執行?
- 20. perl中的觸發器操作符
- 21. 不確定組合操作員在功能中執行什麼操作
- 22. 如何在執行插入操作時創建更新觸發器?
- 23. 如何獲得在觸發器中執行的動作
- 24. mySQL觸發器有什麼問題?
- 25. 爲什麼執行觸發作業的控制器會輸出整數?
- 26. 當觸發這些觸發器功能的插入操作失敗時,觸發器操作後會發生什麼?
- 27. 在django-mptt中執行以下操作有什麼錯誤?
- 28. 爲什麼你必須在error_reporting中執行二進制操作?
- 29. 在觸發器中執行否定的最簡單方法是什麼?
- 30. 在HttpModule中執行操作
是mysql語法還是mysql shell命令? – nafg 2015-02-04 09:42:09
mysql shell命令 – 2015-04-12 05:41:35