我正在使用 Perl 和 DBI 包来执行 MySQL 连接和命令。我发现了关于一个查询对列进行多次更新的强大功能的线程。
有限制吗?我能否构建单个查询来使用唯一数据更新 50,000 行?
最佳答案
有一个限制:您不能执行大于 max_allowed_packet
的查询字节,否则你会得到一个 packet too large错误。在 MySQL 5.5 中,服务器的默认值为 1MB,客户端库的默认值为 1GB(但 mysql
命令行实用程序仅为 16MB)。
你应该看看LOAD DATA INFILE
作为一个可能的选择;对于 50,000 行,它可能比复合插入更快,而且您不必担心超过 max_allowed_packet
。
关于mysql - 在单个 MySQL 查询中更新多个列是否有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072498/