如果您运行的是 MySQL 5.6 或更高版本,那么EXPLAIN就可以解决问题。
explain update whatever;
Run Code Online (Sandbox Code Playgroud)
如果查询没问题,就会显示执行计划。否则,它返回语法错误。
如果您运行的是较低版本的 MySQL,我会看到几个选项:
例如:
update table set col1 = @val1 where col2 = @val2;
Run Code Online (Sandbox Code Playgroud)
变成:
update table set col1 = @val1 where (col2 = @val2) and 1=0;
Run Code Online (Sandbox Code Playgroud)
因此,如果您运行的是 5.6 或更高版本,那么这个EXPLAIN技巧就很巧妙。如果没有,列表中的选项 2 和 3 也是巧妙的技巧。但是,无论如何,您通常应该使用开发中的查询来访问开发服务器。