如何解决基于语句的复制和SQL_CALC_FOUND_ROWS
|| 我们开始使用基于语句的复制,发现它破坏了SQL_CALC_FOUND_ROWS和FOUND_ROWS(),我正在寻找解决方法。来自2007年错误报告的评论建议使用ѭ0,但这似乎不起作用。 MySQL说语法无效。解决方法
如果您使用的是旧版MySQL,则可能是问题的一部分:http://dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_found-rows
FOUND_ROWS()未复制
可靠地使用基于语句的
复制。从MySQL开始
5.1.23,使用基于行的功能自动复制此功能
复制。
编辑:仅当您处于“ 1”模式时,以上方法才有效。
另外,正确的解决方法语法是:
SELECT SQL_CALC_FOUND_ROWS * FROM foo;
SET @found_rows = FOUND_ROWS();
SQL_CALC_FOUND_ROWS
不返回任何内容,它只是告诉MySQL计算从查询中找到的行数,即使a4ѭ子句阻止所有这些行都返回给客户端。然后可以使用FOUND_ROWS()
返回ѭ3temporarily临时存储的值。
编辑:上述解决方法背后的想法(如MySQL错误12092中所述):
FOUND_ROWS()的结果被存储
到用户变量中并使用
相反。这将复制
即使在基于语句的情况下也正确
复制,因为它会写一个
二进制日志的User_var条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。