mysql,批量插入的时候能不能用预编译?
通过sql语句,例如 insert into t1(id1,ids) values(1,2),(3,4)……
可以提高批量插入的效率。
我想问问预编译的时候能不能用?
int i = mysql_stmt_prepare(stmt, sql.c_str(), (uint32)sql.size());
printf("Error %s\n",mysql_stmt_error(stmt));
上面的代码中,sql的值是:"INSERT INTO sqltest(idVal,longVal,longlongVal,doubleVal,strVal,blobVal) VALUES(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?),(?,?,?,?,?,?)"
i的返回值是9,
printf居然是“Error ”,也就是说mysql_stmt_error(stmt)是空???
请问这是怎么的呢?谢谢!!
------解决方案--------------------还是直接生成SQL语句吧。
------解决方案--------------------直接load data稍微效率高一些
------解决方案--------------------
提高效率的话,executemangy()应该是一种很炫的方法