10.子程序的高级特性1

来源:互联网 发布:jquery ajax get json 编辑:程序博客网 时间:2024/05/18 02:24

来源:网易云课堂《精通MySQL存储过程、函数和触发器》课程

讲师:huangxifeng607(黄锡峰)


笔记:

(1)DETERMINISTIC特性


delimiter $$create procedure testa()not deterministicbegindeclare 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 | deterministicbegindeclare 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对存储过程的影响


存储过程与高级特性的关系是无关性的




原创粉丝点击