關於mysql的procedure的一些細節

2021-07-04 18:30:18 字數 972 閱讀 4812

今天在開發procedure時遇到些磕絆,感覺與其說是語法,不如說是潛規則.

案例1:在開發乙個使用cursor的過程時,遇到1337 - variable or condition declaration after cursor or handler declaration,但是我實際上已經定義了的順序是如下.

declare topic int(11);

declare cur1 cursor for select distinct topicid from tab;

declare done int default false;

declare continue handler for not found set done = true;

以下是我調整之後,可以通過的procedure

declare topic int(11);

declare done int default false;

declare cur1 cursor for select distinct topicid from tab;

declare continue handler for not found set done = true;

我其實也不太清楚原理是什麼,在這裡作為乙個開發的參考吧

順序應為:

變數

done 

cursor

continue handler for not found

案例2:procedure中的傳入傳出引數是否需要標明長度的問題

int型可以不標長度,但是varchar型別必須標明長度,否則會編譯失敗,而且很難找到!

關於mysql索引 關於mysql的索引

我們先來了解mysql索引的概念 索引是一種特殊的檔案,他們包含著對資料表裡所有記錄的引用指標。更通俗地說,資料庫索引好比是是一本書前面的目錄,能加快資料庫的查詢速度,我們有了相應的索引後,資料庫會直接在索引中查詢符合條件的選項。索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順...

關於mysql的基礎知識 關於MySQL的基礎知識

一 mysql的官網 二 mysql常見的版本 mysql community server 社群版本,開源免費,但不提供官方技術支援。mysql enterise edition 企業版本,需付費,可以試用30天。三 mysql安裝部署 mysql mysql客戶端程式 mysql server ...

mysql關於日期 關於mysql日期的一些例子

mysql中的月份計算 減少乙個月,比如 原來的subtime 2006 10 22 12 22 22 減少後變成 2006 9 22 12 22 22 update message set subtime date sub subtime,interval 1 month 增加乙個月 update...