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 - 有可能調用函數來執行觸發器操作?
- 4. 觸發器在操作中未觸發
- 5. 爲什麼這個觸發器沒有執行?
- 6. 更新觸發器上的MySql。 DELIMITER
- 7. MySQL - 在另一個觸發器之後執行觸發器
- 8. 在Java中執行新操作後,代碼塊會執行什麼操作?
- 9. IntelliJ在後臺執行什麼操作?
- 10. CookiePolicy適配器參數在Worklight 6.1+中執行什麼操作?
- 11. 對整個事務執行Postgres觸發器,而不是對每個更新操作執行PostgreSQL觸發器
- 12. 如何使用cassandra觸發器執行刪除操作?
- 13. 通過編程寫入觸發器或執行操作?
- 14. 什麼觸發JavaScript代碼執行?
- 15. 在什麼情況下執行SQL Server觸發器?
- 16. Perl的觸發器操作和行號
- 17. INSTEAD OF INSERT觸發器執行插入操作後,FOR INSERT觸發器會觸發嗎?
- 18. 在執行命令後,double-dash會執行什麼操作?
- 19. 在觸發器中執行程序
- 20. 函數執行什麼操作?
- 21. MySQL的 - 什麼是執行此操作
- 22. numpy.apply_along_axis究竟執行什麼操作?
- 23. 如何在觸發器中觸發2個寫操作
- 24. SQL觸發器將不會執行
- 25. 在Postgres觸發函數異常調用之前執行操作
- 26. 爲什麼這個觸發器會讓我的一些插入操作掛起?
- 27. 觸發操作
- 28. MySQL觸發器創建。我的觸發器有什麼問題?
- 29. 觸發器執行插入
- 30. 觸發器執行順序
是mysql語法還是mysql shell命令? – nafg 2015-02-04 09:42:09
mysql shell命令 – 2015-04-12 05:41:35