以下是关于 MySQL 中 DETERMINISTIC、NO SQL 和 READS SQL DATA 的详细解析: 1. DETERMINISTIC 定义与作用 • 作用:标记函数或存储过程为确定性,即相同的输入参数总是返回相同的结果。 • 默认值:MySQL 5.0.0 及以上版本默认值为 NO
(3)CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA:指明子程序使用SQL语句的限制。 CONTAINS SQL表明子程序包含SQL语句,但是不包含读写数据的语句; NO SQL表明子程序不包含SQL语句; READS SQL DATA:说明子程序包含读数据的语句; MODIFIES SQL DATA表明子程序包含写数据的语句。 默认情况下,系统...
如果既没有给定deterministic也没有给定not deterministic,默认的就是not deterministic。 contains sql:表示函数体中不包含读或写数据的语句(例如set命令等)。 no sql:表示函数体中不包含SQL语句。 reads sql data:表示函数体中包含select查询语句,但不包含更新语句。 modifies sql data:表示函数体包含更新语句。如果上...
READS SQL DATA:子程序包含读数据的语句。 MODIFIES SQL DATA:子程序包含写数据的语句。 SQL SECURITY { DEFINER | INVOKER}:指明谁有权限执行。 DEFINER:只有定义者自己才能执行。 INVOKER:调用者可以执行。 COMMENT ‘string’ :注释。 示例4:示例1中创建的存储过程param_pro,将其读写权限该为MODIFIES SQL DATA...
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同...
导出SQL 脚本:mysqldump -u 账户 -p 密码 数据库名称 > 脚本文件地址mysqldump -uroot -padmin jdbcdemo > C:/shop_bak.sql对于全部是 InnoDB 引擎的库,建议使用 mysqldump 备份数据库时添加 —single-transaction 参数(在导数据前会启动一个事务,来确保拿到一致性视图,由于 MVCC 的支持,这个过程中数据可以正常...
READS SQL DATA:表示当前存储过程中包含读数据的 SQL 语句; MODIFIES SQL DATA:表示当前存储过程中包含写数据的 SQL 语句; SQL SECURITY { DEFINER | INVOKER }:说明哪些用户可以调用当前创建的存储过程: DEFINER:表示只有定义当前存储过程的用户才能调用。
第一种是在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 例如: DROP FUNCTION IF EXISTS `t_auto_increment`; DELIMITER ;; CREATE FUNCTION `t_auto_increment`(`seq_name` tinyint) RETURNS varchar(50) CHARSET utf8 ...
⑤ READS SQL DATA表示子程序中包含读数据的语句; ⑥ MODIFIES SQL DATA表示子程序中包含写数据的语句。 ⑦ SQL SECURITY { DEFINER | INVOKER }指明谁有权限来执行。 ⑧ DEFINER表示只有定义者自己才能够执行; ⑨ INVOKER表示调用者可以执行; ⑩ COMMENT 'string’是注释信息。
READS SQL DATA:表示子程序包含读数据的语句,但不包含写数据的语句。 MODIFIES SQL DATA:表示子程序包含写数据的语句。 SQL SECURITY DEFINER:表示执行存储过程中的程序是由创建该存储过程的用户的权限来执行。 SQL SECURITY INVOKER:表示执行存储过程中的程序是由调用该存储过程的用户的权限来执行。(例如上面的存储过...