我即将CREATE FUNCTION用MySQL写一个,我想知道,如果CREATE TEMPORARY TABLE对 flag 计数MODIFIES SQL DATA。函数不会修改任何永久表,只是为了优化目的而创建的临时表。
我应该使用标志MODIFIES SQL DATA还是只使用READS SQL DATA?无论如何,使用或标记
的真正好处是什么?MODIFIES SQL DATAREADS SQL DATA
我即将CREATE FUNCTION用MySQL写一个,我想知道,如果CREATE TEMPORARY TABLE对 flag 计数MODIFIES SQL DATA。函数不会修改任何永久表,只是为了优化目的而创建的临时表。
我应该使用标志MODIFIES SQL DATA还是只使用READS SQL DATA?无论如何,使用或标记
的真正好处是什么?MODIFIES SQL DATAREADS SQL DATA
截至目前(MySQL 5.5),这些特性仅用作代码内文档。
来自http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html
几个特征提供了有关例程使用的数据的性质的信息。在 MySQL 中,这些特性只是建议性的。服务器不使用它们来限制例程将被允许执行的语句类型。
这与(NON)DETERMINISTIC子句形成对比,子句作为提示优化器是否可以缓存函数的结果。