10.子程式的高階特性1
阿新 • • 發佈:2019-02-11
來源:網易雲課堂《精通MySQL儲存過程、函式和觸發器》課程
講師:huangxifeng607(黃錫峰)
筆記:
(1)DETERMINISTIC特性
delimiter $$ create procedure testa() not deterministic begin declare my_uid int default 0; select uid into my_uid from hxf where salary<3000 limit 1; update user set regtime=now() where uid=my_uid; end; $$ delimiter;
1.deterministic的含意指的是什麼?
not deterministic說明子程式包含了不確定的函式等
2.類似的儲存過程和函式高階特性還有:
{contains sql | no sql | reads sql data | modifies sql data}
(2)儲存過程與DETERMINISTIC特性對複製的影響
delimiter $$ create procedure testa() not deterministic | deterministic begin declare my_uid int default 0; select uid into my_uid from hxf where salary<3000 limit 1; update user set regtime=now() where uid=my_uid; end; $$ delimiter;
1.儲存過程執行的語句在二進位制日誌中體現,複製保證精確性(對複製沒有影響)
(3)儲存過程對其它高階特性對複製的影響測試
其它特性:{contains sql | no sql | reads sql data | modifies sql data} 與儲存過程也無相關性測試
contains sql:包括讀與寫的sql
no sql:不包含sql
reads sql data:只包含讀的sql
modifies sql data:只包含寫的sql
mysql 5.6版本之後,沒有影響,以前的版本需要精確指定高階特性
(4)小結
1.子程式的高階特性有哪些
2.子程式的高階特性deterministic對儲存過程的影響
儲存過程與高階特性的關係是無關性的