精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL數據庫中delimiter的作用概述

數據庫 MySQL
今天我們主要向大家描述的是MySQL數據庫中delimiter的作用,以及對相關實際應用語句的描述,以下就是文章的主要內容描述。

以下的文章主要是向大家描述的是MySQL數據庫中delimiter的作用是什么?我們一般都認為這個命令和存儲過程關系不大,到底是不是這樣的呢?以下的文章將會給你相關的知識,望你會有所收獲。

其實就是告訴MySQL解釋器,該段命令是否已經結束了,MySQL數據庫是否可以執行了。默認情況下,delimiter是分號;。在命令行客戶端中,如果有一行命令以分號結束,那么回車后,MySQL將會執行該命令。如輸入下面的語句

  1. MySQL> select * from test_table; 

然后回車,那么MySQL將立即執行該語句。

但有時候,不希望MySQL這么做。在為可能輸入較多的語句,且語句中包含有分號。如試圖在命令行客戶端中輸入如下語句

  1. MySQL> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)  
  2. MySQL> RETURNS varchar(255)  
  3. MySQL> BEGIN  
  4. MySQL> IF ISNULL(S) THEN  
  5. MySQL> RETURN '';  
  6. MySQL> ELSEIF N<15 THEN  
  7. MySQL> RETURN LEFT(S, N);  
  8. MySQL> ELSE  
  9. MySQL> IF CHAR_LENGTH(S) <=N THEN  
  10. MySQL> RETURN S;  
  11. MySQL> ELSE  
  12. MySQL> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));  
  13. MySQL> END IF;  
  14. MySQL> END IF;  
  15. MySQL> END; 

默認情況下,不可能等到用戶把這些語句全部輸入完之后,再執行整段語句。因為MySQL一遇到分號,它就要自動執行。即,在語句RETURN '';時,MySQL數據庫解釋器就要執行了。這種情況下,就需要事先把delimiter換成其它符號,如//或$$。

  1. MySQL> delimiter //  
  2. MySQL> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)  
  3. MySQL> RETURNS varchar(255)  
  4. MySQL> BEGIN  
  5. MySQL> IF ISNULL(S) THEN  
  6. MySQL> RETURN '';  
  7. MySQL> ELSEIF N<15 THEN  
  8. MySQL> RETURN LEFT(S, N);  
  9. MySQL> ELSE  
  10. MySQL> IF CHAR_LENGTH(S) <=N THEN  
  11. MySQL> RETURN S;  
  12. MySQL> ELSE  
  13. MySQL> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));  
  14. MySQL> END IF;  
  15. MySQL> END IF;  
  16. MySQL> END;//  

這樣只有當//出現之后,MySQL解釋器才會執行這段語句

 

例子:

 

  1. MySQL> delimiter //   
  2. MySQL> CREATE PROCEDURE simpleproc (OUT param1 INT)   
  3. -> BEGIN   
  4. -> SELECT COUNT(*) INTO param1 FROM t;   
  5. -> END;   
  6. -> //   
  7. Query OK, 0 rows affected (0.00 sec)   
  8. MySQL> delimiter ;   
  9. MySQL> CALL simpleproc(@a);   
  10. Query OK, 0 rows affected (0.00 sec)   
  11. MySQL> SELECT @a;   
  12. +------+   
  13. | @a |   
  14. +------+   
  15. | 3 |   
  16. +------+   
  17. 1 row in set (0.00 sec)   

 

本文代碼在 MySQL 5.0.41-community-nt 下運行通過。

編寫了個統計網站訪問情況(user agent)的 MySQL 數據庫存儲過程。就是下面的這段 SQL 代碼。

 

  1. drop procedure if exists pr_stat_agent;  
  2. -- call pr_stat_agent ('2008-07-17', '2008-07-18')  
  3. create procedure pr_stat_agent  
  4. (  
  5. pi_date_from date  
  6. ,pi_date_to date  
  7. )  
  8. begin  
  9. -- check input  
  10. if (pi_date_from is null) then  
  11. set pi_date_from = current_date();  
  12. end if;  
  13. if (pi_date_to is null) then  
  14. set pi_date_to = pi_date_from;  
  15. end if;  
  16. set pi_date_to = date_add(pi_date_from, interval 1 day);  
  17. -- stat  
  18. select agent, count(*) as cnt  
  19. from apache_log  
  20. where request_time >= pi_date_from  
  21. and request_time < pi_date_to 
  22. group by agent  
  23. order by cnt desc;  
  24. end;  

 

我在 EMS SQL Manager 2005 for MySQL 這個 MySQL 圖形客戶端下可以順利運行。但是在 SQLyog MySQL GUI v5.02 這個客戶端就會出錯。***找到原因是沒有設置好 delimiter 的問題。#p#

默認情況下,delimiter “;” 用于向 MySQL 提交查詢語句。在存儲過程中每個 SQL 語句的結尾都有個 “;”,如果這時候,每逢 “;” 就向 MySQL 提交的話,當然會出問題了。于是更改 MySQL 的 delimiter,上面 MySQL 存儲過程就編程這樣子了:

delimiter //; -- 改變 MySQL delimiter 為:“//”

 

  1. drop procedure if exists pr_stat_agent //  
  2. -- call pr_stat_agent ('2008-07-17', '2008-07-18')  
  3. create procedure pr_stat_agent  
  4. (  
  5. pi_date_from date  
  6. ,pi_date_to date  
  7. )  
  8. begin  
  9. -- check input  
  10. if (pi_date_from is null) then  
  11. set pi_date_from = current_date();  
  12. end if;  
  13. if (pi_date_to is null) then  
  14. set pi_date_to = pi_date_from;  
  15. end if;  
  16. set pi_date_to = date_add(pi_date_from, interval 1 day);  
  17. -- stat  
  18. select agent, count(*) as cnt  
  19. from apache_log  
  20. where request_time >= pi_date_from  
  21. and request_time < pi_date_to 
  22. group by agent  
  23. order by cnt desc;  
  24. end; //  
  25. delimiter ;  

改回默認的 MySQL delimiter:“;”

當然,MySQL delimiter 符號是可以自由設定的,你可以用 “/” 或者“$$” 等。但是 MySQL數據庫 存儲過程中比較常見的用法是 “//” 和 “$$”。上面的這段在 SQLyog 中的代碼搬到 MySQL 命令客戶端(MySQL Command Line Client)卻不能執行。

MySQL> delimiter //; -- 改變 MySQL delimiter 為:“//”

  1. MySQL> 
  2. MySQL> drop procedure if exists pr_stat_agent //  
  3. -> 
  4. -> -- call pr_stat_agent ('2008-07-17', '2008-07-18')  
  5. -> 
  6. -> create procedure pr_stat_agent  
  7. -> (  
  8. -> pi_date_from date  
  9. -> ,pi_date_to date  
  10. -> )  
  11. -> begin  
  12. -> -- check input  
  13. -> if (pi_date_from is null) then  
  14. -> set pi_date_from = current_date();  
  15. -> end if;  
  16. -> 
  17. -> if (pi_date_to is null) then  
  18. -> set pi_date_to = pi_date_from;  
  19. -> end if;  
  20. -> 
  21. -> set pi_date_to = date_add(pi_date_from, interval 1 day);  
  22. -> 
  23. -> -- stat  
  24. -> select agent, count(*) as cnt  
  25. -> from apache_log  
  26. -> where request_time >= pi_date_from  
  27. -> and request_time < pi_date_to 
  28. -> group by agent  
  29. -> order by cnt desc;  
  30. -> end; //  
  31. -> 
  32. -> delimiter ; 

 改回默認的 MySQL delimiter:“;”

  1. -> //  
  2. -> //  
  3. -> //  
  4. -> ;  
  5. -> ;  
  6. -> 

真是奇怪了!***終于發現問題了,在 MySQL 命令行下運行 “delimiter //; ” 則 MySQL 的 delimiter 實際上是 “//;”,而不是我們所預想的 “//”。其實只要運行指令 “delimiter //” 就 OK 了。

MySQL> delimiter // -- 末尾不要符號 “;”

  1. MySQL> 
  2. MySQL> drop procedure if exists pr_stat_agent //  
  3. Query OK, 0 rows affected (0.00 sec)  
  4. MySQL> 
  5. MySQL> -- call pr_stat_agent ('2008-07-17', '2008-07-18')  
  6. MySQL> 
  7. MySQL> create procedure pr_stat_agent  
  8. -> (  
  9. -> pi_date_from date  
  10. -> ,pi_date_to date  
  11. -> )  
  12. -> begin  
  13. -> -- check input  
  14. -> if (pi_date_from is null) then  
  15. -> set pi_date_from = current_date();  
  16. -> end if;  
  17. -> 
  18. -> if (pi_date_to is null) then  
  19. -> set pi_date_to = pi_date_from;  
  20. -> end if;  
  21. -> 
  22. -> set pi_date_to = date_add(pi_date_from, interval 1 day);  
  23. -> 
  24. -> -- stat  
  25. -> select agent, count(*) as cnt  
  26. -> from apache_log  
  27. -> where request_time >= pi_date_from  
  28. -> and request_time < pi_date_to 
  29. -> group by agent  
  30. -> order by cnt desc;  
  31. -> end; //  
  32. Query OK, 0 rows affected (0.00 sec)  
  33. MySQL> 
  34. MySQL> delimiter ;   

末尾不要符號 “//”

  1. MySQL> 

順帶一提的是,我們可以在 MySQL 數據庫中執行在文件中的 SQL 代碼。例如,我把上面存儲過程的代碼放在文件 d:\pr_stat_agent.sql 中。可以運行下面的代碼建立存儲過程。

 

  1. MySQL> source d:\pr_stat_agent.sql  
  2. Query OK, 0 rows affected (0.00 sec)  
  3. Query OK, 0 rows affected (0.00 sec)  

 

source 指令的縮寫形式是:“\.”

 

  1. MySQL> \. d:\pr_stat_agent.sql  
  2. Query OK, 0 rows affected (0.00 sec)  
  3. Query OK, 0 rows affected (0.00 sec)  

 

***,可見 MySQL數據庫的客戶端工具在有些地方是各自為政,各有各的一套。

【編輯推薦】

  1. MySQL數據庫和相關事務總結
  2. MySQL數據庫NULL值的處理
  3. MySQL臨時表的實際應用功能簡介
  4. MySQL游標的使用筆記大全
  5. 對MySQL數據庫小技巧概述
責任編輯:佚名 來源: cnblogs
相關推薦

2010-10-09 09:04:53

MySql中delim

2009-09-04 09:54:59

數據庫名

2010-10-09 10:29:29

MySQL外鍵

2010-05-31 17:15:39

MySQL數據庫

2011-03-04 13:47:12

專利數據庫

2010-06-01 10:17:01

重啟MySQL數據庫

2011-05-24 14:27:42

2011-03-07 13:30:53

Oracle數據庫

2009-09-18 13:58:00

LINQ查詢數據庫

2011-05-20 10:30:20

ORACLE數據庫性能優化

2011-03-28 13:25:27

MySQL數據庫哈希加密

2011-08-01 23:08:33

MySQL存儲引擎

2010-05-20 14:25:25

2010-06-01 17:21:50

MySQL delim

2018-01-24 20:42:06

數據庫NoSQL驅動力

2009-06-30 13:53:08

前瞻性Oracle數據庫

2009-08-25 12:50:32

數據庫常用C#代碼

2010-07-14 17:49:39

SQL Server數

2018-07-30 15:00:05

數據庫MySQLJOIN

2011-04-07 09:06:27

MySQL數據庫密碼
點贊
收藏

51CTO技術棧公眾號

福利一区福利二区微拍刺激| 麻豆91在线看| 91精品麻豆日日躁夜夜躁| 亚洲午夜在线观看| 国产又粗又黄又爽视频| 在线观看国产精品入口| 9191久久久久久久久久久| 91大学生片黄在线观看| 天堂v在线观看| 久久久久国产精品一区二区| 日韩精品在线视频美女| 国产精品天天av精麻传媒| 91伦理视频在线观看| 国产一区美女在线| 性欧美激情精品| 国产一二三四五区| 精品国产亚洲一区二区三区在线 | 素人fc2av清纯18岁| 视频二区不卡| 欧美激情综合五月色丁香小说| 91精品久久久久久综合乱菊| 久久精品视频8| 欧美精品一区二区三区精品| 日韩美女视频一区二区在线观看| 无码粉嫩虎白一线天在线观看 | 亚洲欧洲综合网| 成人午夜大片| 欧美制服丝袜第一页| 超碰超碰超碰超碰超碰| 狠狠v欧美ⅴ日韩v亚洲v大胸| 久久精品av麻豆的观看方式| 久久精品国产欧美激情| 亚洲av片不卡无码久久| 99re66热这里只有精品4| 亚洲欧美日本韩国| 神马影院一区二区三区| 欧洲av在线播放| 久久 天天综合| 欧美一区二区.| 1024手机在线视频| 国产在线观看91一区二区三区 | 高清av免费看| 三级在线观看视频| 中文字幕不卡三区| 牛人盗摄一区二区三区视频| 国产夫妻自拍av| 美国毛片一区二区三区| 欧洲亚洲女同hd| 久久国产精品二区| 99久久99视频只有精品| 亚洲成色777777女色窝| 精品人妻一区二区三| 亚洲综合在线电影| 欧美日韩免费看| 久久这里只有精品8| 国产最新在线| 国产精品久久久久久久岛一牛影视| 国产麻豆日韩| www.天堂av.com| 国产一区啦啦啦在线观看| 国产精品视频午夜| 国产日韩在线免费观看| 久久福利一区| 欧美在线视频一二三| 日本熟妇成熟毛茸茸| 欧美日韩理论| 欧美国产日本在线| 精品国产大片大片大片| 日韩成人免费| 中文字幕自拍vr一区二区三区| 黑人巨大精品欧美| 免费成人网www| 亚洲精品视频久久| 亚洲第一成人网站| 欧美一区二区三区久久| 亚洲国产精品va在线| 800av在线播放| 国产精品jk白丝蜜臀av小说| 日韩欧美视频在线| 香蕉久久久久久av成人| 91成人入口| 亚洲第一级黄色片| 成人成人成人在线视频| 日韩专区在线观看| 我要看一级黄色录像| 天天影视综合| 免费97视频在线精品国自产拍| www.xxxx日本| 亚洲黄色精品| 26uuu亚洲伊人春色| 亚洲天堂一区在线| 青青国产91久久久久久| 国产日韩欧美黄色| 精品久久久无码中文字幕| 丁香婷婷综合五月| 蜜桃999成人看片在线观看| 国产玉足榨精视频在线观看| 国产欧美日韩视频在线观看| 一区二区三区的久久的视频| www在线免费观看视频| 一区二区三区av电影| 欧美日韩黄色一级片| 中文.日本.精品| 欧美丝袜自拍制服另类| 视频区 图片区 小说区| 老牛国内精品亚洲成av人片| 亚洲网在线观看| 国产黄色的视频| 国产欧美日韩一区二区三区在线| 国产成人中文字幕| 国产av无码专区亚洲a∨毛片| 床上的激情91.| 欧美在线日韩精品| a毛片在线看免费观看| 亚洲1区2区3区视频| 亚洲欧美激情网| 国模大尺度视频一区二区| 日韩成人免费视频| 国产免费一区二区三区四区| 亚洲高清激情| 国产免费亚洲高清| 欧美一级特黄aaaaaa| 久久综合av免费| 国产免费xxx| 成人免费福利| 亚洲高清av在线| 精品亚洲乱码一区二区| 99视频精品免费观看| 国产精品日日做人人爱| 天堂中文在线看| 亚洲精品写真福利| 黄色三级视频在线| 少妇高潮一区二区三区| 美女久久久久久久久久久| 欧美a视频在线观看| 国产成人自拍高清视频在线免费播放| 欧美主播一区二区三区美女 久久精品人 | 制服丝袜第一页在线观看| 蜜臀久久99精品久久一区二区| 久热精品视频在线观看一区| 一区二区自拍偷拍| 久久这里只有精品首页| 欧洲视频一区二区三区| 亚洲天堂免费电影| 亚洲精品一区二区三区影院| 影音先锋男人资源在线观看| 老妇喷水一区二区三区| 国产伦精品一区二区三区在线| 欧美xxxx少妇| 欧美一区二区三区视频在线观看| 国产传媒在线看| 免费视频一区| 久久综合一区二区三区| av资源在线播放| 91精品在线一区二区| 国产精品麻豆一区| 欧美aaaaa成人免费观看视频| 欧美一区免费视频| xx欧美xxx| 亚洲精品视频二区| 国产精品777777| 久久亚洲一区二区三区明星换脸| 婷婷五月综合缴情在线视频| 久久aimee| 9.1国产丝袜在线观看 | 日本电影在线观看网站| 欧美在线三级电影| 在线观看日本中文字幕| 日韩一区精品视频| 日韩三级电影| 免费在线成人激情电影| 中日韩午夜理伦电影免费| 欧美不卡视频在线观看| 久久综合九色综合欧美98| av免费中文字幕| 国际精品欧美精品| 国产欧美日韩中文字幕| 黄网页免费在线观看| 欧美一区二区视频在线观看2022| 国产又黄又粗的视频| 奇米777欧美一区二区| 久久久水蜜桃| 精品无人乱码一区二区三区| 中文字幕亚洲一区二区三区| 国产精品主播一区二区| 一区二区三区蜜桃网| 妖精视频一区二区| 美女日韩在线中文字幕| 日韩欧美一区二区三区四区| avtt综合网| 国产精品美女主播| 国产精品一品| 中文字幕日韩高清| 欧美 日韩 国产 精品| 欧美性videosxxxxx| 久久久久性色av无码一区二区| 久久综合久久综合亚洲| japan高清日本乱xxxxx| 视频一区二区三区在线| www.xxx麻豆| 97在线精品| 精品一区二区日本| 欧洲一区在线| 国产精品美女呻吟| 欧美一级鲁丝片| 粗暴蹂躏中文一区二区三区| 九色在线观看视频| 337p日本欧洲亚洲大胆色噜噜| 亚洲特级黄色片| 欧美色欧美亚洲高清在线视频| 四虎精品免费视频| 国产欧美日产一区| 日本xxxx裸体xxxx| 岛国av在线一区| 成年人网站av| 蜜桃91丨九色丨蝌蚪91桃色| 男人天堂网视频| 激情文学一区| 黄色一级视频播放| 99久久夜色精品国产亚洲1000部| 日本欧美色综合网站免费| 伊人久久噜噜噜躁狠狠躁| 国产色视频一区| 成人久久网站| 国产精品黄视频| 性欧美hd调教| 国产成人综合av| 性欧美xxx69hd高清| 97在线精品国自产拍中文| 在线中文字幕第一页| 日韩在线视频导航| 97超碰人人在线| 一区二区欧美亚洲| 国产高清视频在线| 亚洲视频在线观看| 国产精品一区二区婷婷| 亚洲免费高清视频| 免费国产在线观看| 亚洲人成电影网站| 欧美日韩在线精品一区二区三区激情综 | 久久久久久一区二区三区| 波多野结衣精品| 欧美国产精品va在线观看| 丁香花在线电影小说观看| 欧美激情久久久久久| av剧情在线观看| 欧美最猛性xxxxx亚洲精品| 涩涩视频网站在线观看| 欧美亚洲日本黄色| 欧美xx视频| 国产成人拍精品视频午夜网站| 黑人精品一区| 国产精品久久久久久久av大片| 欧美va在线观看| 国产欧美一区二区| 国产精久久一区二区| 51国产成人精品午夜福中文下载| 日本少妇精品亚洲第一区| 99re6热在线精品视频播放速度| heyzo欧美激情| 九九九九精品| 狠狠色狠狠色综合婷婷tag| 天天好比中文综合网| 99久久久久| 日韩免费在线观看av| 亚洲色诱最新| www亚洲成人| 国产一区二区三区综合| 亚洲美女在线播放| 国产三级久久久| 国产suv精品一区二区68| 一区二区三区四区不卡在线| 91精品国产乱码在线观看| 91福利区一区二区三区| 国产一区二区小视频| 欧美mv和日韩mv的网站| 欧美日韩视频精品二区| 视频直播国产精品| 懂色av一区| 国产精品无码专区在线观看| 视频一区中文字幕精品| 免费国产在线精品一区二区三区| 日韩精品一区二区三区免费观影 | 麻豆国产精品视频| 999热精品视频| 成人免费视频caoporn| 中文字幕av网址| **欧美大码日韩| www日韩精品| 欧美人妇做爰xxxⅹ性高电影| 丰满肥臀噗嗤啊x99av| 亚洲女人被黑人巨大进入| 黄色网在线免费观看| 欧美在线视频一区| 视频精品国内| 伊人情人网综合| 香蕉精品999视频一区二区 | 成人免费一级片| 欧美mv日韩mv| 免费黄色在线| 日本中文字幕久久看| 91精品啪在线观看国产手机| 神马影院午夜我不卡| 国产精品入口66mio| 国产伦精品一区二区三区妓女下载 | 51国产成人精品午夜福中文下载| 激情综合网五月| 水蜜桃色314在线观看| 韩国成人精品a∨在线观看| 90岁老太婆乱淫| 性做久久久久久久免费看| 97超碰人人草| 在线精品国产欧美| 在线观看爽视频| 国产精品9999久久久久仙踪林| 97精品一区| 久久久精品三级| 久久伊99综合婷婷久久伊| 国产午夜福利片| 欧美videossexotv100| 国产激情在线视频| 国产精品美女在线观看| 精品美女视频| 成人综合视频在线| 成人高清免费观看| 久久久国产精品人人片| 91麻豆精品国产91久久久资源速度 | 成人国产精品免费| 强乱中文字幕av一区乱码| 欧美乱妇23p| 在线观看免费高清完整| 国产不卡av在线| 亚洲+变态+欧美+另类+精品| 日韩精品视频在线观看视频| 国产精品资源网| 免费成人深夜夜行网站| 欧美精品色一区二区三区| 在线播放毛片| 国产精品网红福利| 97视频热人人精品免费| 亚洲综合婷婷久久| 中日韩av电影| 亚洲网站在线免费观看| 日韩中文字幕在线免费观看| 国内精品伊人| 一级黄色录像免费看| 国产在线精品一区二区夜色| 少妇被躁爽到高潮无码文| 欧美一区二区精品在线| 污污在线观看| 鬼打鬼之黄金道士1992林正英| 亚洲特级毛片| 日韩av一二区| 欧美在线观看禁18| 久久久久久久久免费视频| 亚洲一区二区在线| 亚洲私拍自拍| 日本aaa视频| 欧美视频在线播放| 老司机免费在线视频| 成人91免费视频| 国产欧美成人| 日本女人性生活视频| 日韩欧美一级二级| 午夜不卡影院| 亚洲精品自在在线观看| 国产最新精品免费| 日韩乱码人妻无码中文字幕| 亚洲网站视频福利| 久久久久久爱| 欧美国产激情视频| 国产精品家庭影院| 黄色av网站免费在线观看| 日韩免费视频在线观看| 亚洲草久电影| 亚洲男人在线天堂| 欧美日韩在线电影| 成人高潮aa毛片免费| 日韩一区二区电影在线观看| 国产乱淫av一区二区三区 | 欧美丰满嫩嫩电影| 后进极品白嫩翘臀在线播放| 欧美人xxxxx| 国产一区二区三区在线观看免费视频| 精品无码久久久久| 在线不卡国产精品| 日韩免费一级| 日韩精品无码一区二区三区免费| 综合精品久久久| 蝌蚪视频在线播放| 成人综合色站| 免费成人在线观看视频| 久久久久无码国产精品| 中文字幕欧美日韩| 激情小说一区| 特黄视频免费观看| 欧美视频精品一区| 天堂8中文在线| 一区二区不卡在线| 久久久噜噜噜久久人人看|