1樓:我tm不管
其實就是告訴mysql直譯器,該段命令是否已經結束了,mysql是否可以執行了。
預設情況下,delimiter是分號;。在命令列客戶端中,如果有一行命令以分號結束,
那麼回車後,mysql將會執行該命令。如輸入下面的語句
mysql> select * from test_table;
然後回車,那麼mysql將立即執行該語句。
但有時候,不希望mysql這麼做。在為可能輸入較多的語句,且語句中包含有分號。
如試圖在命令列客戶端中輸入如下語句
mysql> create function `shorten`(s varchar(255), n int)
mysql> returns varchar(255)
mysql> begin
mysql> if isnull(s) then
mysql> return '';
mysql> elseif n<15 then
mysql> return left(s, n);
mysql> else
mysql> if char_length(s) <=n then
mysql> return s;
mysql> else
mysql> return concat(left(s, n-10), '...', right(s, 5));
mysql> end if;
mysql> end if;
mysql> end;
預設情況下,不可能等到使用者把這些語句全部輸入完之後,再執行整段語句。
因為mysql一遇到分號,它就要自動執行。
即,在語句return '';時,mysql直譯器就要執行了。
這種情況下,就需要事先把delimiter換成其它符號,如//或$$。
mysql> delimiter //
mysql> create function `shorten`(s varchar(255), n int)
mysql> returns varchar(255)
mysql> begin
mysql> if isnull(s) then
mysql> return '';
mysql> elseif n<15 then
mysql> return left(s, n);
mysql> else
mysql> if char_length(s) <=n then
mysql> return s;
mysql> else
mysql> return concat(left(s, n-10), '...', right(s, 5));
mysql> end if;
mysql> end if;
mysql> end;//
這樣只有當//出現之後,mysql直譯器才會執行這段語句
2樓:匿名使用者
倒!!!
delimiter是來改變輸入結束符的
mysql預設的是;
但是sql語句的結束符也是;
所以要改了
mysql 建立儲存過程要寫delimiter,後面的$是什麼意思
3樓:匿名使用者
delimiter就是告訴mysql直譯器,該段命令是否已經結束了,是否可以執行了。
預設情況下,delimiter是分號;,遇到分號就執行。
後面的雙美元符號 就是告訴mysql,遇到雙美元符號再執行
4樓:粉紅頑皮蛇
如果寫了delimiter$ 那就是執行語句時遇到$就停止了預設是分號 ;
假設你沒寫delimiter$ 的話 但是寫了多條sql語句 語句後面用 ; 結尾
那麼執行到 ;的時候就停止了
樓上說的很對
5樓:火籬笆
delimiter是mysql定義結束標記的,在mysql客戶端中結束標記預設是分號(;)。
如果一次輸入的語句較多,並且語句中間有分號,這時需要新指定一個特殊的結束符。
delimiter $ 表示mysql用$表示mysql語句結束,過程結束後肯定會有一句
delimiter ;
恢復成預設的。
mysql 建立儲存過程要寫delimiter,後面的$是什麼意思
6樓:
mysql系統預設 ;號為結束符號,mysql遇到;號即會執行,但在建立儲存過程中,會有很多語句的結束,為了避免mysql在儲存過程未完時就執行程式,需要另外設定一個結束符號;
delimiter $即表示命名$號為結束符,而恢復;號為結束符號為delimiter ;
sql server的儲存過程的declare函式的使用?誰
前面的是引數,是呼叫這個儲存過程的時候從外部輸入進來的。declare 是宣告變數。變數是在批處理或過程的主體中用 declare 語句宣告的,並用 set 或 select 語句賦值。遊標變數可使用此語句宣告,並可用於其他與遊標相關的語句。所有變數在宣告後均初始化為 null。transact s...
sqlserver中的儲存過程的日期引數怎麼賦當前日期
執行下面的儲存過程即可 select name create date modify date from sys objects where type p order by modify date desc 如果想找到更多的被修改過的儲存過程 使用者表 自定義函式,觸發器,可以執行下面的sql語句 ...
MySQL不能用,為什麼輸入命令沒用的
是database,而不是datebase,有一個字母打錯了 mysql命令列輸入命令回車後沒反應怎麼回事?具體如圖 10 要在命令後面加行 g 如果你確定輸入的命令列沒有錯誤,那可能是你登陸mysql所用的使用者許可權下就沒有新建過資料庫。不過不顯示任何資訊是不正常的.建議你還是好好檢查下命令列 ...