10 子程式的高階特性1

2021-08-09 01:47:27 字數 1179 閱讀 9670

講師: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.類似的儲存過程和函式高階特性還有:

(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:包括讀與寫的sql

no sql:不包含sql

reads sql data:只包含讀的sql

modifies sql data:只包含寫的sql

mysql 5.6版本之後,沒有影響,以前的版本需要精確指定高階特性

(4)小結

1.子程式的高階特性有哪些

2.子程式的高階特性deterministic對儲存過程的影響

儲存過程與高階特性的關係是無關性的

11 子程式的高階特性2

講師 huangxifeng607 黃錫峰 筆記 1 函式的唯讀高階特性 delimiter create function testa returns int reads sql data begin declare my uid int select uid into my uid from h...

12 子程式的高階特性3

講師 huangxifeng607 黃錫峰 筆記 1 sql security特性 delimiter create procedure testa sql security definer invoker begin declare aa int select sleep 30 into aa e...

mysql子程式的高階特性(一)

delimiter create procedure test prod not deterministic begin update test score set score 6 where id 5 limit 1 end delimiter not deterministic 表示子程式包含了...