c mysql 绑定变量_我可以在MySQL 5的SQL查询中使用多少绑定变量?

我在MySQL 5的查询中可以使用的绑定变量数是否有限制?我认为有,但我在参考手册或谷歌搜索中找不到任何信息.

这似乎意味着记忆是唯一的限制,但这似乎有点怀疑.

更新:有一个限制!

runner.rb:47: data_replicator.rb:312:in `prepare': Prepared statement contains too many placeholders (Mysql::Error)

from data_replicator.rb:312:in `set_statement_handle_for'

from data_replicator.rb:287:in `log_query'

from data_replicator.rb:221:in `replicate_table'

from data_replicator.rb:93:in `replicate'

from data_replicator.rb:20:in `run'

这给了我一些更好的搜索!

解决方法:

预准备语句中值的最大占位符数是16位无符号整数的最大值,或者是指定值:65,536.

这可以在MySQL代码中看到:

SQL / sql_prepare.cc:

static bool init_param_array(Prepared_statement *stmt)

{

LEX *lex= stmt->lex;

if ((stmt->param_count= lex->param_list.elements))

{

if (stmt->param_count > (uint) UINT_MAX16)

{

/* Error code to be defined in 5.0 */

my_message(ER_PS_MANY_PARAM, ER(ER_PS_MANY_PARAM), MYF(0));

return TRUE;

}

标签:mysql

来源: https://codeday.me/bug/20190518/1128832.html


版权声明:本文为weixin_42509908原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。